2012-03-09 51 views
1

如何在.htaccess文件的幫助下將我的第一個參數重命名爲任何變量?如何通過.htaccess重命名第一個參數

例如,使用http://localhost/mysite/index.php,我想將index.php或任何其他頁面名稱重命名爲某個特定名稱。

即返回的.htaccess我以下網址

http://localhost/mysite/page

「頁」 可以是任何頁面名稱即的index.php,about.php,等等。

回答

1

要只「允許」,用字母網頁:

RewriteEngine on 
RewriteRule ^mysite/([a-z]+)$ http://localhost/mysite/$1.php [L] 

爲「允許」以任何字符頁面

RewriteEngine on 
RewriteRule ^mysite/([.]+)$ http://localhost/mysite/$1.php [L] 
-1

無需htaccess,使用此:

RedirectMatch /mysite/index.php http://localhost/mysite/page 
+0

沒有不喜歡這個。我想重新命名每個傳入的請求到「page」參數,然後在index.php上,希望通過獲取「page」作爲查詢字符串來加載頁面 – baig772 2012-03-09 12:36:24

0

使用mod_rewrite重寫您的網址。這是基於模式的。

首先添加到您的.htaccess

選項+的FollowSymLinks RewriteEngine敘述 上

這開啓了重寫引擎。然後定義必須被捕獲的模式&改寫:

重寫規則^頁/([^/.]+)/?$^.PHP [L]

我認爲這條規則將做你要求重寫。欲瞭解更多信息只是看在谷歌的mod_rewrite使用的例子

0

您通常會將slug或請求URI作爲查詢字符串的一部分,然後使用.htaccess和PHP的組合來重寫該傳入請求。

例如,你可以榻這在你的.htaccess文件來捕獲所有傳入的請求:

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

這將重新編寫任何傳入的URL,這是不是已經是一個文件或目錄。所以http://example.com/page會被匹配。

然後在你的index.php腳本,你將有類似如下的內容:

<?php 
$parts = explode('/', $_GET['url']); 

這只是將您的網址在斜線,所以如果請求URL是/頁/關於美國你會得到一個陣列,看起來如下:

array(2) { 
    [0]=> string(4) "page" 
    [1]=> string(8) "about-us" 
} 

希望這會有所幫助。

相關問題