【问题标题】:Multiple mod_rewrite Rules in .htaccess?.htaccess 中有多个 mod_rewrite 规则?
【发布时间】:2013-08-05 15:17:08
【问题描述】:

我的 .htaccess 中有以下内容

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /rewrite/index.php?pages=$1 [L] 

这对于重写所有不存在的文件和目录非常有用。 但是现在我需要做另一个更具体的重写

条件应该是“如果请求的 URI 不存在并且它以参加者/结尾”然后 Apply RewriteRule ^(.+)$ /rewrite/attendees.php?pages=$1 [L]

如何应用?

一开始我以为会按照列出的顺序来读,于是试了一下:

RewriteCond %{REQUEST_FILENAME} employee   [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /rewrite/attendees.php?pages=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /rewrite/index.php?pages=$1 [L] 

但是失败了……


用这个解决了:

RewriteCond %{REQUEST_URI} (employee) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /rewrite/employee.php?pages=$1 [L]   

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /rewrite/index.php?pages=$1 [L]

【问题讨论】:

标签: .htaccess mod-rewrite


【解决方案1】:

只需添加另一个RewriteCond

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} attendees/$
RewriteRule ^(.+)$ /rewrite/index.php?pages=$1 [L]

【讨论】:

    猜你喜欢
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 2016-08-31
    • 1970-01-01
    相关资源
    最近更新 更多