网址重写不能在我的网站上运行

时间:2013-11-13 06:52:01

标签: .htaccess url-rewriting

我有吉他和弦的子域名。 http://tabs.sitename.com/?song=song_name 我想重写这个网址, http://tabs.sitename.com/song/song_name 我尝试使用以下代码,但我的网址没有重写。

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^song/([^/]*)/$ /?song=$1 [L]

网址未重写。我错过了什么吗?请帮忙

2 个答案:

答案 0 :(得分:0)

请尝试以下规则:

Options +FollowSymLinks
RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/\?(song)=([^\s&]+) [NC]
RewriteRule ^ /$1/$2? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^song/([^/]+)/$ /?song=$1 [L,QSA,NE]

答案 1 :(得分:0)

首先,您提供的模式:

^song/([^/]*)/$ 

与您要匹配的字符串不匹配:

song/Bistarai+Bistarai 

所以,下次有助于确保你的模式在继续之前有效。

假设我完全理解你想要做什么,这应该工作(重定向目标文件上的php扩展只是一个例子,使用你的真实目标文件):

RewriteRule ^song\/([A-Za-z0-9\+]+) file_you_want_to_redirect_to.php?song=$1

正如我所提到的,我在上面的例子中使用了一个php脚本;如果我要了解你正试图重定向到http://tabs.musiccafenepal.com/的索引页面,你应该知道你应该放

index.php?song=$1 

而不是

/?song=$1 

作为重定向目标表达式。