htaccess重定向规则从www.domain.com/?page=news到www.domain.com/news

时间:2013-12-23 02:58:57

标签: regex apache .htaccess mod-rewrite redirect

我需要将网址重定向为

www.domain.com/?page=news - > www.domain.com/news

这是我的htaccess文件:

Options -Multiviews
RewriteEngine On
RewriteBase /

# Force search engines to use www.domain.com
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteRule ^(.*) http://www.domain.com/$1 [R=301,L]

# Specify search friendly URLs
RewriteRule ^http://www\.domain\.com/news/$ /http://www.domain.com/?page=news [L]

请建议我在.htaccess文件中使用的确切规则。

提前致谢。

2 个答案:

答案 0 :(得分:1)

抱歉,我对此不了解,但我看到了一个由我在Facebook上关注的人发布的好教程: http://www.9lessons.info/2013/11/htaccess-file-tutorial-and-tips.html

希望这有帮助。

答案 1 :(得分:1)

您的第二条规则不正确,因为您无法在RewriteRule模式中匹配域名。该模式仅匹配没有域名和查询字符串的REQUEST_URI。

你的第二条规则应该是这样的:

RewriteCond %{THE_REQUEST} \s/+\?page=([^&\s]+) [NC]
RewriteRule ^ /%1? [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

# Specify search friendly URLs
RewriteCond %{QUERY_STRING} !(^|&)page=[^&]+
RewriteRule ^([^/]+)/?$ /?page=$1 [L,NC,QSA]

参考:Apache mod_rewrite Introduction