我想删除所有网页末尾的“.php” 和 为“example.com/archive?url = ...”部分重写我的动态网址... “使用.htaccess重写动态网址
我走到这一步:
Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
这部分工作正常,但现在我也想重写动态网址的网站的以下部分。
旧的URL: example.com/archive?url=test-article
新的URL: example.com/archive/test-article
RewriteRule ^archive/([^/]+)$ archive?url=$1
这部分不工作。我在这里错过了什么?
它用于插件域,所以这可能与这个问题有关?
编辑1:
我把一些垃圾在我的.htaccess文件,所以我肯定知道它的读取文件时,它产生一个错误。
编辑2:
我禁用多视图如下建议,但现在得到一个内部服务器错误。 这是错误日志:
[2014年5月20日星期二13:12:12] [error] [client(ip)]由于可能的配置错误,请求超过了10个内部重定向的限制。如果需要,使用'LimitInternalRecursion'来增加限制。使用“LogLevel的调试”,以获得回溯
编辑3:我找到了解决办法
我改变最后的规则进入解决了这个问题:
RewriteRule ^news/([^/]+)$ archive?url=$1
尝试在'^存档/'删除插入符号,如果该作品,尝试使用'^ /存档/'代替 – charmeleon
如何如果您试图从所有网页的末尾删除“php”,可以使用'RewriteRule ^(。*)$ $ 1.html'吗? –
@Joh Lin:我不知道,但它工作。当实际文件是example.com/archive/2014时。PHP然后它加载正确的页面,当我链接到示例/档案/ 2014 – Stan