这是我目前的htaccess文件
RewriteEngine On
# Only redirect if file dosen't exist.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/(.*) /admin.php
RewriteRule ^([^/]) /index.php [L]
我不知道为什么这不起作用。我想我终于掌握了mod_rewrite,然后它就像这样完全出乎意料。
基本上,如果URL是domain.com/admin/something,那么我希望它重定向到domain.com/admin.php(包括如果它只是/ admin)。但是,如果还有其他任何我希望它重定向到index.php。
知道如何实现这个目标吗?
谢谢。
答案 0 :(得分:2)
RewriteEngine On
# No redirect, if file or directory exists
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^admin/(.*) /admin.php [L]
RewriteRule ^(.*)$ /index.php [L]
没有测试它。有趣的部分是管理规则之后的L
- 标志,因为它阻止了下一个规则的匹配。
我更改了RewriteCond
- 语句,因为它们仅适用于下一个RewriteRule
,而且(在您的情况下)不会影响index.php
的规则。