簡體   English   中英

mod_rewrite奇怪地在URL上添加了21個斜杠

[英]mod_rewrite freakishly appends 21 slashes to URL

我有我認為是一個簡單的mod_rewrite規則。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^store/([a-z0-9_\-]+)/?([a-z0-9_\-]+)?(.*)?$ store/$2?store_name=$1$3 [L]

但是,當我轉到以下網址時:

http://www.mydomain.com/store/e95_airport/

它變成:

http://www.mydomain.com/store/e95_airport/////////////////////

我期待加載的URL:

的index.php?STORE_NAME = e95_airport

當我調用以下URL時,它工作正常:

存儲/ e95_airport /一些頁面,其他超的index.php

我已經禁用了所有其他mod_rewrite規則,以防我的.htaccess文件中的其他地方發生沖突。 這里有沒有人可以診斷我的重寫規則有什么問題? 任何幫助是極大的贊賞!

問題是該網站正在進入循環,因為您將其重定向到基本相同的地址。

好的,所以你要用重寫來改變它,但它重寫它的URL仍然匹配表達式。

mod_rewrite的工作方式是,一旦重寫了URL,它就會有效地用新URL重新查詢自己。 因此,如果您的新URL仍然與表達式匹配,它將進入循環。

為什么它停在21斜杠? 這是因為Apache將檢測它何時處於循環中,並且如果它自己重新查詢20次則停止。

正如@Spudley所說,你進入了一個循環。

期待你的重寫規則,並查看你想要的結果,我會說重寫規則也是錯誤的。 它應該是這樣的:

RewriteRule ^store/([a-z0-9_\-]+)/?([a-z0-9_\-]+)?(.*)?$ index.php?store_name=$1 [L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM