Mod rewrite mod_重写新手-这是正确的吗?
这应该接受任何uri,并将其作为查询字符串的一部分发送给将处理它的脚本Mod rewrite mod_重写新手-这是正确的吗?,mod-rewrite,apache2,Mod Rewrite,Apache2,这应该接受任何uri,并将其作为查询字符串的一部分发送给将处理它的脚本 RewriteEngine On RewriteCond %{REQUEST_URI} !(css.php|gif|jpe?g|png|css|js|json|xml|ico)$ RewriteRule ^(.*)(/)?$ index.php?where=$1 [QSA,L] 我这样问是因为它在某些服务器上工作,而在其他服务器上不工作。在某些情况下,它会忽略整个事情,就好像url重写已关闭一样,而在另一些情况下,只要上传
RewriteEngine On
RewriteCond %{REQUEST_URI} !(css.php|gif|jpe?g|png|css|js|json|xml|ico)$
RewriteRule ^(.*)(/)?$ index.php?where=$1 [QSA,L]
我这样问是因为它在某些服务器上工作,而在其他服务器上不工作。在某些情况下,它会忽略整个事情,就好像url重写已关闭一样,而在另一些情况下,只要上传带有上述内容的.htaccess,它就会报告一个错误的请求。BTH我会稍微更改一下这条规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.(css.php|gif|jpe?g|png|css|js|json|xml|ico)$
RewriteRule ^(.*)/?$ index.php?where=$1 [QSA,L]
\.
,以确保它仅适用于具有此类扩展名的文件(否则该模式也将匹配结尾有该文本的文件,即/something/mygif
/something/my.gif
)
(/)
替换为/
——它在功能上没有区别,但在资源上有点轻
返回主题:
- 如果它“像关闭url重写一样忽略整个过程”,则很可能.htaccess文件不受支持/启用(或者它应该具有不同的名称,如指令所配置的名称:例如,
) 要检查它,请尝试将一些其他指令放入.htaccess,看看它是否有效(例如:AccessFileName ht.access
或errordocument404/404.php
等)DirectoryIndex.php
- 如果它“在上载带有上述内容的.htaccess时报告错误请求”,则很可能不允许将这些指令放在.htaccess中(要求
或至少AllowOverride All
),或者未启用mod_rewrite 检查Apache的错误日志——它应该有提到这一时刻的条目AllowOverride FileInfo