2011-05-12 98 views
0

我在example.com/pages/page1/example.com/pages/page2使用去除URL字符串的.htaccess

形式的URL是否有.htaccess摆脱/pages/部分的一种简单的方法,让我的网址是:

example.com/page1 

谢谢

+0

请等待 - 请澄清以便我了解您的目标:您是否希望最终用户在“example.com/pages/page1”中键入内部重定向到“example.com/page1”的内容,或者是否希望最终用户在'example.com/page1'中键入内部重定向,静静地输入'example.com/pages/page1'? – 2011-05-12 13:13:28

+0

我希望输入'example.com/pages/page1'的用户被重定向到'example.com/page1'等 – terrid25 2011-05-13 12:46:06

+0

请参阅我对答案的编辑。希望这可以帮你。 – 2011-05-13 12:54:29

回答

2

如果您有能力修改DocumentRoot,这听起来像你只需要将DocumentRoot设置为/path/to/pages即可。不过,如果你不能做到这一点,那么你可以在.htaccess

RewriteEngine On 
RewriteRule ^/(.*)$ /pages/$1 [L,QSA] 

试试这个上面是通用的,重定向一切/pages。如果您的网页确实被称为“第一页第二页等等”,那么这是更为具体:

RewriteRule ^/page([0-9]+)$ /pages/page$1 [L,QSA] 

取出[L],如果你有更多的重写规则来处理。 [QSA]沿着可能存在的任何其他查询字符串参数转发。

编辑:对于用户输入example.com/pages/page1被重定向到example.com/page1

RewriteEngine On 
RewriteRule ^/pages/(.*)$ /$1 [L,QSA] 

以上将在内部重定向,但不能更改浏览器的地址栏中。如果您想要更改地址栏,请通知用户重定向已发生,请改为使用[L,R=301,QSA]

+0

我的页面名称是动态的,所以类似于'/ pages/about-us'和'/ pages/contact'。我有其他页面,比如'/ categories'和'/ users',所以我不想重定向所有的东西,只是那些匹配'/ pages/dynamic_url'的东西 – terrid25 2011-05-12 11:02:28