2016-04-27 68 views
1

我在使用.htaccess文件重寫URL時遇到了問題。我不知道正則表達式。我有這麼多的博客,並使用在線重寫規則生成器來生成URL並粘貼到.htaccess文件中。但沒有人工作。我在Apache服務器的httpd.conf文件中啓用了mod_rewrite模塊。如何使用.htaccess文件重寫URL?

我想重寫下面的url。

我已經在OS-Win7上用Apache服務器開發了項目。

http://localhost:81/quora/tamilnanban/innerpage.php?url=why-you-should-avoid-watching-porn-on-android-smartphones 

http://localhost:81/quora/tamilnanban/why-you-should-avoid-watching-porn-on-android-smartphones 

我目前的.htaccess文件包含以下代碼:

RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^.*$ ./index.php 
#RewriteRule ^url/([^/]*)\.html$ :81/quora/tamilnanban/innerpage.php?url=$1 [L] 

RewriteRule ^/quora/tamilnanban/([^/]*)\.html$ /quora/tamilnanban/innerpage.php?url=$1 [L] 

上面這條規則也不能正常工作。請幫助我使用.htaccess文件實現網址重寫。另外,如果我在上述步驟中犯了什麼錯誤,請糾正我。提前致謝。

回答

1

要轉換/quora/tamilnanban/innerpage\.php\?url=foobar"/quora/tamilnanban/foobar您可以在/quora/tamilnanban/.htaccess使用以下規則:

RewriteEngine on 

#1)Redirect "/quora/tamilnanban/innerpage\.php\?url=foobar" to "/quora/tamilnanban/foobar"# 
RewriteCond %{THE_REQUEST} /quora/tamilnanban/innerpage\.php\?url=(.+)\sHTTP [NC] 
RewriteRule^/quora/tamilnanban/%1? [L,R] 
#2)The rule bellow will internally map "/quora/tamilnanban/foobar"" to "/quora/tamilnanban/innerpage\.php?url=foobar"# 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?(.+)$ /quora/tamilnanban/innerpage\.php?url=$1 [L] 
+0

我已經用在.htaccess文件代碼。現在url按預期顯示在瀏覽器中。但是頁面被重定向到localhost頁面而不是預期的對應頁面。請幫助我,如果需要更改代碼中的任何內容。謝謝。 – Janaki

+0

@Janaki究竟應該將頁面重定向到哪裏? – starkeen

+0

我將在innnerpage.php中獲取查詢字符串值(url參數值),並根據url值顯示頁面內容。 – Janaki