2014-04-22 39 views
1

我试图去除所有网址的尾部斜线。无论我尝试何种htaccess脚本行,它总是重定向到完整的服务器目录。 example.com/XYZ/奇怪地重定向到example.com/customers/b/7/3/example.com/httpd.www/XYZ - 未找到。尾部斜杠去除打开完整目录

基本上,我没有使用任何子目录,但根据最后一个斜杠后的最后一个字符串是什么来从数据库中获取数据。所以“未找到”错误是可以的,因为实际上并不存在一个现有的文件夹。

我是新来的htaccess,所以我只是试图找到我找到的任何行。

重写,使任何打开的index.php,而不是一个文件夹(没有斜线正常工作,发动机上):

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?$1 

我没有使用此删除斜杠:

RewriteRule ^(.+)/$ /$1 [R=301,L] 

所以基本上我想要做的是:

  • 以index.php打开任何网址。例如example.com/XY实际上不会重定向,但显示/打开index.php(我认为我实现了上述两行)
  • 虽然这样做,我也试图从例如删除尾部斜杠。 example.com/XY/,所以example.com/XYexample.com/XY/都显示/ index.php的开放

感谢您的智慧!

+1

一般尖,使用'example.com'。 'xxx.com'是一个真正有效的色情网站。 –

回答

1

你可以这样做:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=301,L] 

RewriteRule ^([\w-]+)/?$ /index.php?$1 [L,QSA] 
+0

谢谢anubhava,这似乎工作:) – Tobias

+0

不客气,很高兴它解决了。 – anubhava