2016-08-04 90 views
1

试图重写几个不同的URL而不改变RewriteBase。以下网址查询:htaccess在不改变RewriteBase的情况下重写网址而不改变rewritebase

http://example.com/directory1/directory2/job?id=100 
http://example.com/directory3/directory4/profile?id=200 

将成为:

http://example.com/directory1/directory2/job/100 
http://example.com/directory3/directory4/profile/200 

目前的规则:

RewriteRule ^directory1/directory2/job/([0-9]+)$ ./directory1/directory2/job?id=$1 [L,QSA] 

RewriteRule ^directory3/directory4/profile/([0-9]+)$ ./directory3/directory4/profile?id=$1 [L,QSA] 

完整的htaccess:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
     Options +FollowSymLinks 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes... 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    RewriteRule ^directory1/directory2/job/([0-9]+)$ ./directory1/directory2/job?id=$1 [L,QSA] 

    RewriteRule ^directory3/directory4/profile/([0-9]+)$ ./directory3/directory4/profile?id=$1 [L,QSA] 

</IfModule> 
+0

那么有什么不符合规则的问题? – anubhava

+0

没有错误。用完整的htaccess编辑问题 – Klav

回答

1

有顺序的规则:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
     Options +FollowSymLinks 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    RewriteCond %{THE_REQUEST} (/directory1/directory2/job)\?id=([^\s&]+) [NC] 
    RewriteRule^/%1/%2? [R=302,L,NE] 

    RewriteCond %{THE_REQUEST} (/directory3/directory4/profile)\?id=([^\s&]+) [NC] 
    RewriteRule^/%1/%2? [R=302,L,NE] 

    RewriteRule ^(directory1/directory2/job)/([0-9]+)$ $1?id=$2 [L,QSA] 

    RewriteRule ^(directory3/directory4/profile)/([0-9]+)$ $1?id=$2 [L,QSA] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

</IfModule> 
+0

感谢您关注此事。我仍然没有得到任何东西,也没有错误。在其他条件和规则中添加工作得很好。我需要定义一个查询字符串吗? – Klav

+1

试试我的更新规则。 – anubhava

+0

$ _GET无法访问,我认为这是再次的顺序,但是这并没有帮助 – Klav

相关问题