我已经使用htaccess配置了我的服务器,以便我可以将所有URL路由到PHP $ _GET参数。我希望网站上的网址以.htm结束。目前我有这个htaccess,我从来没有遇到任何问题:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ajax/([A-Z,a-z,0-9,\_/]*).htm$ index.php?route=$1&opformat=ajax [QSA]
RewriteRule ^([A-Z,a-z,0-9,\_/]*).htm$ index.php?route=$1 [QSA]
但是我刚刚安装了在js文件夹中使用.htm文件的TinyMCE,例如“/js/tinymce/prop.htm”。由于某些原因,当输入此URL时,我的htaccess将其路由到php,但它不起作用。
我被理解为RewriteCond %{REQUEST_FILENAME} !-f
应该阻止这种情况发生。为什么不呢? RewriteCond %{REQUEST_FILENAME} !-d
正在运行,因为我可以在此示例中转到“/ js / tinymce”并查看目录列表。
感谢。
答案 0 :(得分:0)
我建议您将代码更改为:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteRule ^ajax/([^.]*)\.htm$ index.php?route=$1&opformat=ajax [L,QSA,NC]
RewriteRule ^([^.]*)\.htm$ index.php?route=$1 [L,QSA,NC]