2013-06-24 127 views
1

我想將URL參數重定向到新文件。我有一個頁面blog.php的能產生這樣的鏈接網址:http://localhost/project-DEV/blog/category/link-url-here/.htaccess生成奇怪的URL

但是,當我點擊它爲我提供了這個URL鏈接:

http://localhost/project-DEV/blog/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/blogs/uncategorized/hello-world/ 

這裏是我的.htaccess文件在博客文件夾

RewriteEngine On 
RewriteBase /project-DEV/blog 
RewriteRule ^(.*)/?$ http\:\/\/localhost\/project-DEV\/blog\/index.php?$1 [L] 

我在博客文件夾中有一個blog/index.php文件。我想將此category/link-url-here/發送到我的index.php文件。

是否有可能通過.htaccess像我試過嗎?爲什麼這個.htaccess代碼無法正常工作?

+0

你創建了一個循環重定向,你的重寫路徑和規則都在其中有'/ project-DEV/blog' – DevZer0

+0

@ DevZer0你是對的它是循環的,但是在兩個規則中都有這個字符串並不是爲什麼。 – pjmorse

回答

1

儘量省略http://localhost部分:

RewriteEngine On 
RewriteBase /project-DEV/blog 
RewriteRule ^(.*)/?$ /project-DEV/blog/index.php?$1 [L] 

如果沒有幫助,您可以添加一個條件明確不能重寫index.php,以防止重寫循環:

RewriteCond %{REQUEST_URI} !^/project-DEV/blog/index.php$ 
1

因爲你RewriteRule將匹配相當接近每一個請求,包括那些已經被改寫,它被反覆調用。您需要重寫規則,使其不符合已包含重寫路徑的請求,可能與RewriteCond

此外,請考慮閱讀When Not To Use Rewrite並使用更輕,更快,更容易混淆的mod_redirect而不是mod_rewrite