任何人都可以帮我处理URL重写

时间:2013-01-03 15:05:30

标签: mod-rewrite

我是URL重写的初学者,我有一个问题。以下是我的规则的一部分:

RewriteRule ^admin/page1/?$ admin/page1.php
RewriteRule ^admin/page2/?$ admin/page2.php
RewriteRule ^admin/page3/?$ admin/page3.php
<more similar lines>

所有这些页面(x)都是不同的php文件。 现在重写工作正常,但是可以缩短所有这些吗? 例如:

RewriteRule ^admin/(.*)/?$ admin/$1\(.php) (or whatever...)

感谢您的回答:)

3 个答案:

答案 0 :(得分:0)

你可以这样试试 -

RewriteRule ^(.*)/(.*)/$ admin/$2.php?{QUERY_STRING}

代码未经过测试。

答案 1 :(得分:0)

是的,你会这样做:

RewriteRule ^admin/(.*)/?$ admin/$1.php

然而,这将匹配admin//并将其更改为admin/.php,这是我确定你想要的。因此,请使用+代替*

RewriteRule ^admin/(.+)/?$ admin/$1.php

请注意,您拥有的规则也会匹配admin/folderX/pageX。如果您不想要此行为,请尝试:

RewriteRule ^admin/([^/]+)/?$ admin/$1.php

答案 2 :(得分:0)

这个非常好

<IfModule mod_rewrite.c>                                                                                                                                                                                                                     
    RewriteEngine On                                                                                                                                                                                                                         
    RewriteCond %{REQUEST_FILENAME} !-d                                                                                                                                                                                                      
    RewriteCond %{REQUEST_FILENAME} !-f                                                                                                                                                                                                      
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]                                                                                                                                                                                              
</IfModule>

你把它放在你的.htaccess然后如果你的index.php中的URL是例如/ projects /,你将在参数$ _GET ['url']中收到它..那么我建议你使用explode ('/',$ _GET ['url']);

这是最简单和最基本的URL重写,非常适合任何事情。

如果指定的URL是文件系统中的当前文件,它将为您提供文件,否则它将为您的index.php代码提供GET参数中的URL