我想删除" .php"在所有网页的末尾 和 重写我的动态网址" example.com/archive?url = ..."
到目前为止我得到了什么:
Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
这部分工作正常,但现在我还要为网站的以下部分重写我的动态网址。
旧网址: example.com/archive?url=test-article
新网址: example.com/archive/test-article
RewriteRule ^archive/([^/]+)$ archive?url=$1
这部分不起作用。我在这里缺少什么?
它用于插件域,所以这可能与此问题有关吗?
编辑1:
我在.htaccess文件中放了一些垃圾,它会产生错误,所以我肯定知道它正在读取文件。
编辑2:
我按照以下建议禁用了多视图,但现在出现内部服务器错误。 这是错误日志:
[Tue May 20 13:12:12 2014] [error] [client(ip)]由于可能的配置错误,请求超出了10次内部重定向的限制。使用' LimitInternalRecursion'必要时增加限额。使用' LogLevel debug'获得回溯
编辑3:我找到了解决方案
我通过将最后一条规则更改为:
解决了这个问题RewriteRule ^news/([^/]+)$ archive?url=$1
答案 0 :(得分:1)
您很可能已启用选项MultiViews
。
您可以使用以下方法禁用它:
Options -MultiViews
禁用MultiViews
后,当您请求/file.php
时,它将无法提供/file
。
编辑:根据您修改过的问题,您可以这样做:
RewriteRule ^news/([^/]+)$ archive?url=$1