有关重写URL的替代方法的任何想法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关重写URL的替代方法的任何想法?相关的知识,希望对你有一定的参考价值。

目前,我使用社区开源软件。一切都很好。我的问题不是什么大问题,它不是崩溃或停止我的网站的错误。这并不可怕。只是我想知道更多,因为我尝试了太多不同的方式(对于我将在下面讨论的问题),但显然我只是不够好的故障排除者。那么......让我最后解释一下它是什么。我有这样的网址:

https://someexamplewebsitehere.com/forum

我想这样做:

https://someexamplewebsitehere.com/forov

(其中“forov”与我母语中的“论坛”相同)

我希望页面的内容完全相同(镜像)。安装没什么不同。我想重写一下。我想成为某种别名,但我没有对网络服务器的权限,我只有cPanel,就是这样。

类似的解决方案在这里解释rewrite a folder name using .htaccess但显然,它不适用于我的网站。

默认CMS .htaccess文件如下所示:

Options +FollowSymLinks
RewriteEngine On

AddEncoding gzip .gz
AddEncoding gzip .gzip
<FilesMatch ".(js.gz|js.gzip)$">
  ForceType text/javascript
</FilesMatch>
<FilesMatch ".(css.gz|css.gzip)$">
  ForceType text/css
</FilesMatch>


RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} !/ow_updates/index.php
RewriteCond %{REQUEST_URI} !/ow_updates/
RewriteCond %{REQUEST_URI} !/ow_cron/run.php
RewriteCond %{REQUEST_URI} !/e500.php
RewriteCond %{REQUEST_URI} !/captcha.php
#RewriteCond %{REQUEST_URI} (/|.php|.html|.htm|.xml|.feed|robots.txt|.raw|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} (/|.php|.html|.htm|.xml|.feed|robots.txt|.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php

而且我不想在论坛插件中进行自定义修改,因为在插件更新的情况下我会丢失这些修改。如果可能,我想重写URL。

我尝试了很多变种。有任何想法吗?

答案

你可以像这样写。

RewriteRule ^forum/(.*)$ /forov/$1 [R=301,NC,L]

这就是我将其用于CMS客户端的方式。

RewriteEngine On
RewriteCond %{HTTP} off
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^forum/(.*)$ /forov/$1 [R=301,NC,L]

还使用:

Options +FollowSymlinks
Options -Indexes

如果所有其他方法都失败了,如果它只是那个页面,你可以制作一个假的页面并使用301重定向,这基本上说这个页面是同一页面,但现在就在这里。这是将重定向用于其他地方的实际页面的正确方法,您不希望丢失页面排名并通知searchbots。

即yoursite.com/forum

<?php 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.YourWebsite.com/forov"); 
?>

以上是关于有关重写URL的替代方法的任何想法?的主要内容,如果未能解决你的问题,请参考以下文章

Python模板设计模式中有关重写模板方法的问题

URL的PHP​​和哈希/片段部分

CouchDB - CouchApp 的任何替代品?

nginx URL重写(rewrite)

nginx URL重写(rewrite)

JSTL c:url