我需要一个简单模式的htaccess RewriteRule

时间:2013-07-30 00:07:18

标签: regex .htaccess mod-rewrite url-rewriting

我想要以下内容:

http://fref.co/anystring

被重写为:

http://fref.co/?q=anystring

这就是我走了多远:

RewriteEngine  On
RewriteRule ^(.+)/?$ index.php?q=$1 [NC,L]

1 个答案:

答案 0 :(得分:0)

这应该可以满足您的需求:

Options +FollowSymLinks -MultiViews

RewriteEngine On

# Internally redirect http://fref.co/anystring to http://fref.co/?q=anystring
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ /index.php?q=$1 [L]

# Redirect http://fref.co/?q=anystring to http://fref.co/anystring
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(/index\.php|/)\?q=([^\s]+) [NC]
RewriteRule ^ /%2? [R=302,L]