我正在尝试为我的网站实现这些干净的URL,但是htaccess无法为我工作。 我的网址只有一个参数,并且输入了搜索内容:
site.com/page.php?search=some
但我需要
site.com/page/search/some
尝试了很多方法,但没有为我工作。 php文件中是否需要其他代码?
这是我的代码
RewriteEngine On
RewriteRule ^([-\w]+)$ page.php?search=$1 [NC,L]
请帮助我,我是htaccess的新手。 另外,我想知道htaccses如何使用一个参数和两个数字。
答案 0 :(得分:1)
重写规则如何工作;它分为两个部分:
`RewriteRule 1_FIND_THIS 2_OVERWRITE_WHITH_THIS`
请记住,您会同时使用两种形式的纯正则表达式(尽管是一种特殊的语法),并且功能强大。
所以就您而言
RewriteRule search\/([\w]+)\/$ page.php?search=$1 [NC,L]
答案 1 :(得分:0)
这是我对similar question的回答的副本。希望它会对您有所帮助:
This页面似乎可以解决您要执行的操作:
<?
$Params = explode( '/', $PATH_INFO );
while( list( $Index, $Value ) = each( $Params )) {
echo "Params[ $Index ] = $Value<BR>\n" );
}
?>
点击此网址:
http://whatever.site.com/ThisIsAProgram/these/directories/are/not/real
您应该得到:
Params [0] =
Params [1] =这些
Params [2] =目录
Params [3] =是
Params [4] =否
Params [5] =真实
要仅将PHP文件显示为文件名,请尝试以下操作:
Options +MultiViews
RewriteEngine On
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [NC,L]
如果您想要一个更完整的示例,this answer涵盖的范围要比我所能涵盖的要深得多。如果我的其他链接文章不够清楚,这肯定会帮助您涵盖所有基础并理解问题。