2011-01-28 125 views
0

重写,我发现关于URL重写一些问题: .htaccess: Problem with URL rewriting.htaccess question - URL-rewriting网址的.htaccess

我想他们的方法,但不工作在我的情况? 矿看起来很简单:

http://example.org.uk/member/home.php?profile --> http://example.org.uk/member/home/profile/ 
http://example.org.uk/member/home.php?history --> http://example.org.uk/member/home/history/ 

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
#RewriteRule ^home/([0-9][0-9])/$ /home.php?$1 
RewriteRule ^/([^/]+).php$ /home.php?$1 [L] 

任何thougt是appricated?谢谢

+0

您的规则和示例相互矛盾。你想把`home.php?profile`映射到`home/profile`(例子)还是`home/profile`被重写为`home.php?profile`(重写代码)? – 2011-01-28 17:53:26

+0

@Linus:我想映射到家庭/配置文件,并删除PHP前。 – tonoslfx 2011-01-28 17:54:45

回答

4

你使它有点复杂,下面应该工作

http://example.org.uk/member/home.php?profile --> http://example.org.uk/member/home/profile/ 
http://example.org.uk/member/home.php?history --> http://example.org.uk/member/home/history/ 



RewriteRule ^/member/home/(.*)/ /home.php?$1 [L] 

或者更一般

RewriteRule ^/(.*)/(.*)/(.*)/ /home.php?$3 [L] 
0

在RewriteRule中,你有“^ /([^ /] +).php $”,但是你不想在URL中使用.php扩展名。从重写规则中删除.php。 像这样的东西应该工作:

RewriteRule ^/member/home/.*$ /member/home.php?$1 [L] 
-1

它仍然会寻找”。 php“,因此你可以使用

RewriteRule ^/([^/]*)/$ home.php?$1 
0
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/member/home/([a-zA-z0-9]+)/$ /member/home.php?$1 [L]