RewriteCond用于捕获不以/结尾的URL

时间:2014-04-15 00:49:55

标签: .htaccess mod-rewrite url-rewrite-module

我试图在我的htaccess文件中写一个RewriteCond,只捕获那些不以/结尾的URL。

到目前为止,这是我的文件:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ ./wedding.php?w=$1

所以我试图通过" W"仅当URL不以/

结尾时才获取var

所以这不会被重写:

domain.com/bla/

但这会:

domain.com/bla

请协助

干杯!

答案: 这就是我最终使用的:

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ ./wedding.php?w=$1

编辑Howlin: 这是我的完整htaccess,我有wordpress和一个网络应用程序一起生活在同一个目录上,所以如果URL不适用于webapp,它将转到Wordpress:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ ./wedding.php?w=$1

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

1 个答案:

答案 0 :(得分:1)

这应该适合你:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([A-Za-z0-9]+)$ /wedding.php?w=$1 [R]

以上内容只应重定向不存在的网址,并且最后不会有/