htaccses RewriteRule不起作用

时间:2019-08-26 21:54:18

标签: php .htaccess

我正在尝试为我的网站实现这些干净的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如何使用一个参数和两个数字。

2 个答案:

答案 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涵盖的范围要比我所能涵盖的要深得多。如果我的其他链接文章不够清楚,这肯定会帮助您涵盖所有基础并理解问题。

相关问题