2013-02-21 30 views
0

我想在非现有文件(应该是我的视图)的情况下重写URI,如下所示:使用.htaccess重写http://example.com/any/path到http://example.com/any

http://example.com/test/path/examplehttp://example.com/test

我已经删除结尾的斜杠这个规则:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} (.*)$ 
RewriteRule ^(.+)/$ $1 [R=301,L] 

我有什么要添加到我的.htaccess文件,以获得所需的功能?

+0

在要传递的URL-路径替换URL的实际规则,所以,当该路径应该被删除,并且当应该传递? – 2013-02-21 10:18:46

+0

@faa如果它包含斜线,则应删除第一个斜线以及之后的所有内容。 – 2013-02-21 10:32:30

+0

但在你的规则中,它也必须有一个斜线,所以有什么区别? – 2013-02-21 10:35:18

回答

1

提供的未使用的规则集的问题,你可以试试这个:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/.+/? $1? [R=301,L] 

重定向永久

http://example.com/folder/with/any/path或任何查询

要:

http://example.com/folder

所有字符串都是假定是可变的。

对于无声映射替换[R = 301,L]与[L]

+0

我编辑了我的问题以清除误解;抱歉,因为模糊不清! – 2013-02-21 11:48:16

+1

所以你需要在'http:// example/test'之后删除任何路径。对? – 2013-02-21 11:50:03

+0

是的,没错! – 2013-02-21 11:51:37