2014-01-28 122 views
3

好的我是新的URL重寫和重定向的問題。我已經搜索谷歌& Stackoverflow的工作,並沒有什麼似乎工作的答案!URL重寫和使用htaccess的文件夾重定向

我想要做到的是...... 把這個鏈接:mysite.com/research/index.php?quote=goog

然後將其轉換,並將其重定向到這個:mysite.com/research/goog

不要緊的「goog」末的URL字符串是從位於url中的表單中抓取的?這裏是用來抓取「goog」的代碼<?php echo $_POST['quote'];?>

下面是我在我的htaccess文件中唯一的代碼片段,它不起作用!我做錯了嗎?我的代碼中是否存在缺失?我有我的代碼位於根目錄(mysite.com),我應該在「研究」文件夾? (mysite.com/research/)

RewriteEngine On 
RewriteRule ^quote/([^/]*)$ /research/index.php?quote=$1 [L] 

是否有可能我的主機/服務器不接受.htaccess文件?我應該在web.config文件中執行它嗎?如果是這樣,我將如何將上面的代碼轉換爲正常工作的web.config文件?

回答

3

這些規則,你需要在你的/research/.htaccess文件:

RewriteEngine On 
RewriteBase /research/ 

RewriteCond %{THE_REQUEST} /index\.php\?quote=([^\s&]+) [NC] 
RewriteRule^%1? [R=301,L,NE] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/?$ index.php?quote=$1 [L,QSA,NC] 

訪問它在你的index.php使用:

$quote = $_GET['quote'];` 
+0

感謝您的回覆...我試過提供的代碼,但它仍然沒有工作,這裏是在索引頁上使用的表單代碼'

「>'我試過post&get ...當一個符號被插入到表單的輸入部分時,它們被髮送到下一頁(mysite.com/research/ index.php?quote = goog)並且它在符號後面輸入 – antivinegar

+0

.htaccess的位置是什麼?你必須使用'$ _GET ['quote'];'這裏沒有POST。 – anubhava

+0

mysite.com/research/.htaccess是文件的位置。即使我改爲「GET」,它仍然不起作用。該表單應該是這樣嗎? '」>'此表單操作位於索引頁面(mysite.com/index。 php) – antivinegar

0

這應該爲你工作:

RewriteEngine On 
RewriteCond %{QUERY_STRING} "quote=([^&]+)" 
RewriteRule ^/research/index.php /research/%1? [R,L] 

查詢字符串是請求的URL,所以你需要檢查明確的一個單獨部分。通過使用RewriteCond,你可以說'quote'參數是否存在,你會捕獲它的值(通過獲取所有不是'&'的字符)。這會填充可以在重寫中使用的%1變量。

+0

感謝您的答覆!由於某種原因,它不起作用。我在兩個位置根目錄文件夾和研究文件夾中嘗試了它...需要一段時間來處理?我假設如果我推它活和測試它,那麼它應該工作,只要我推它活着嗎? – antivinegar

+0

這需要進入根目錄。不知道你的主機如何配置,所以不能評論如何使它適用我害怕。 – arco444