2014-04-22 40 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