开发者

mod_rewrite - do two redirects - if the first one dosen't match do the second

This is my htaccess file at the moment

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]开发者_如何学编程

I don't have any idea why this doesn't work. I think I've finally grasped mod_rewrite and then it just does something completely unexpected like this.

Basically if the URL is domain.com/admin/something then I want it to redirect to domain.com/admin.php (including if its just /admin). However if its ANYTHING else I want it to redirect to index.php.

Any idea how to achieve this?

Thank you.


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]

Didnt test it. The interesting part is the L-Flag after the admin-rule, because it prevents the next rule from matching.

I changed the RewriteCond-Statements, because they only apply to the one next RewriteRule and (in your case) doesnt affect the rule to index.php.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜