[英]RewriteRule htaccess $1 refferring to php file itself
代碼:
.htaccess:
RewriteEngine On
RewriteRule ^(.*)/*$ base.php?request=$1 [NC,L]
base.php
<?php
echo "this is base.php <br/> and Get Vaiables <br> ";
print_r($_GET);
?>
對於請求:
localhost/blahblahproject/hello
預期結果:
這是base.php
並獲取庫存
數組([request] => hello)
當前結果:
這是base.php
並獲取庫存
數組([request] => base.php)
將您的.htaccess規則更改為此:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ /base.php?request=$1 [QSA,L]
.htaccess
僅將url重定向到您的get參數。 要檢索url值,請使用parse_url
或類似命令。
我有一個像這樣的功能來完成這項工作:
/**
* Sets current request url
*/
private function setUrl() {
$path = parse_url( $_SERVER[ 'REQUEST_URI' ], PHP_URL_PATH );
$pathTrimmed = trim( $path, '/' );
$pathTokens = explode( '/', $pathTrimmed );
if ( substr( $path, -1 ) !== '/' ) {
array_pop( $pathTokens );
}
$url = end( $pathTokens );
$this -> url = $url;
}
如果您對最后一個“ /”之后的字符串感興趣,請將.htaccess文件更改為:
RewriteEngine On
RewriteRule ^.*/(.*)$ base.php?request=$1 [NC,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.