代码:
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
并获得Vaiables
数组([request] =&gt; hello)
当前结果:
这是base.php
并获得Vaiables
数组([request] =&gt; base.php)
答案 0 :(得分:1)
将.htaccess规则更改为:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ /base.php?request=$1 [QSA,L]
答案 1 :(得分:0)
.htaccess
仅将网址重定向到您的get参数。要检索网址值,请使用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;
}
答案 2 :(得分:0)
如果您对最后一个“/”后面的字符串感兴趣,请将.htaccess文件更改为:
RewriteEngine On
RewriteRule ^.*/(.*)$ base.php?request=$1 [NC,L]