我已将我的.htaccess设置为将调用重定向到mydomain.com/something.html到mydomain.com/index.php?q=something
这工作正常....但我注意到,因为移动到新托管我得到多个查询“查询”丢失。 我很确定这是因为错误的URL的默认html页面是“missing.html”,它被重定向为mydomain.com/index.php?q=missing。因此,任何缺少的URL都会导致我的PHP脚本以“缺失”作为输入运行。
有没有办法让URL重定向并管理对missing.html的调用,而不实际调用我的PHP脚本来查找丢失的URL?
使用解决方案进行编辑;这是我的.htaccess,只有在没有现有URL时才会进行重定向:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)\.html index.php?q=$1
似乎需要放置RewriteCond(如上所示)。
答案 0 :(得分:3)
您正在寻找RewriteCond
。
在.htaccess
:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
这些规则也将停止重写任何可访问的路径。如果您想严格missing.html
,那么以下规则就足够了:
RewriteCond %{REQUEST_URI} !/missing.html
请注意,这些指令必须在RewriteRule
之前。
答案 1 :(得分:1)
是不是可以添加一个优先于另一个的重写规则,并专门将mydomain.com/missing.html重写到404页面的位置? (查看您已设置的重定向规则会有所帮助。)