2012-06-20 81 views
1

我希望我的URL添加尾部斜線,但僅當URL不以錨點結尾時。.htaccess在頁面中添加尾部斜線,除非#中的URL位於URL中

這是我目前的.htaccess文件

# ---------------------------------------------------------------------- 
# Enable Rewrite Engine 
# ---------------------------------------------------------------------- 

RewriteEngine On 
RewriteBase/


# ---------------------------------------------------------------------- 
# Remove the www from the URL 
# ---------------------------------------------------------------------- 

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 


# ---------------------------------------------------------------------- 
# Add a trailing slash to paths without an extension 
# ---------------------------------------------------------------------- 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule ^(.*)$ $1/ [L,R=301] 


# ---------------------------------------------------------------------- 
# Remove index.php 
# ---------------------------------------------------------------------- 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 


當我鏈接到拋錨部分,該URL的被寫入到:

http://mysite.com/subdir/#anchor 


當他們看起來像這樣:

http://mysite.com/subdir#anchor 


普通的URL看起來應該是這樣:

http://mysite.com/directory/sub/ 



我很爲難,所以任何幫助將是巨大的!

乾杯,

回答

1

不要以爲跟這個問題是因爲你的重寫規則。碎片(位於URI末尾的#something)永遠不會被髮送到服務器,它們被用作瀏覽器正在呈現的頁面內的下級資源。

確保您所服務的HTML在錨中沒有包含尾部斜槓,或者您沒有在瀏覽器端附加它們的JavaScript。


編輯:

好吧,如果這是你的URI的結尾去掉加斜槓的問題,你可能想註釋掉這條規則:

# ---------------------------------------------------------------------- 
# Add a trailing slash to paths without an extension 
# ---------------------------------------------------------------------- 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule ^(.*)$ $1/ [L,R=301] 
+0

阿權,在URI的斜槓沒有得到補充的非常非常結束(我更新我的崗位)。但是,斜槓仍然在#號之前添加。 – Dan

+0

@丹如果是這樣的情況下,看到編輯我的回答 –

+0

是我不好,我更新我的帖子再一次地說,我希望我的網址添加結尾的斜線,但只有當URL不以#結束 – Dan

2

你有沒有看在Apache的Directory Slash設置?

下面是我們使用的是在.htaccess來處理類似的問題

DirectorySlash Off 
DirectoryIndex index.php index.html index.htm 
+0

似乎沒有這樣的伎倆,生病記住這一點對未來雖然 – Dan

相關問題