Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php URL重写不适用于变量_Php_.htaccess_Url Rewriting_Wamp - Fatal编程技术网

Php URL重写不适用于变量

Php URL重写不适用于变量,php,.htaccess,url-rewriting,wamp,Php,.htaccess,Url Rewriting,Wamp,这是htaccess文件中的一条规则: RewriteRule ^Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L] 在href中,我放置了以下url: href="<?php echo 'Serie-examens-'.$idChapitre.'-'.$idTitres[0].'-debuter');?>" 我使用的是wamp,我测试了在没有

这是htaccess文件中的一条规则:

RewriteRule ^Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]
在href中,我放置了以下url:

href="<?php echo 'Serie-examens-'.$idChapitre.'-'.$idTitres[0].'-debuter');?>"
我使用的是wamp,我测试了在没有变量的情况下重写url,它可以工作

规则中的错误在哪里

完整的.htaccess文件:

SetEnv REGISTER_GLOBALS 0

<Files .htaccess>
order allow,deny
deny from all
</Files>

Options -Indexes

RewriteEngine On
RewriteBase /SerieJava/

RewriteRule ^Le-premier-chapitre chapitre1.php [L]

RewriteRule ^Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examenss-list.php?idChapitre=$1&idTitre=$2 [L]

谢谢

您在php链接中有一个不应该出现的结尾:

href="<?php echo 'Serie-examens-'.$idChapitre.'-'.$idTitres[0].'-debuter');?>"
                                                                         ^ here
^表示开始,因此如果您的路径是/SerieJava/serieexamen。。。。它不会被重写,因为它以/SerieJava/开头

您应该发布整个.htaccess文件,看看这是否是问题所在,但看起来确实是问题所在。

这应该是您的/SerieJava/.htaccess:

尝试将/添加到您的重写规则:

RewriteEngine On
RewriteBase /SerieJava
RewriteRule ^/Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]
请注意^之后和系列之前的/

您也可以尝试从规则中删除carot:

RewriteEngine On
RewriteBase /SerieJava/
RewriteRule Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]

此.htaccess位于何处?在以下目录中:wamp/www/SerieJava/.htaccess是否打开了重写引擎?是否可以显示完整的/SerieJava/.htaccess。您的PHP@user3817737html源代码是什么样子?@user3817737如果是html源代码,那么php没有被处理,但根据你的问题,我对此表示怀疑。你能从浏览器中发布真正的html源代码吗?这是我的.htaccess:SetEnv REGISTER_GLOBALS 0 order allow,deny deny deny from all Options-RewriteRule上的索引RewriteEngine ^Le premier chapitre chapitre chapitre chapitre.php[L]RewriteRule^/SerieJava/Serie examens-[0-9]+-[a-zA-Z]+$examens list.php?idChapitre=$1&idTitre=$2[L]@user3817737去掉起始正斜杠:重写规则^SerieJava/SerieExa。。。。但是,您可能需要一个正斜杠或examens-list.php的完整路径……当您输入http://localhost/SerieJava/examens-list.php?idChapitre=1&idTitre=浏览器中的$1?最初使用这些链接调用页面,正常工作,现在,当我尝试添加重写url时,当您访问http://localhost/SerieJava/examens-list.php?idChapitre=1&idTitre=1 在浏览器中是否为您打开了正确的页面?验证是否启用了/SerieJava/.htaccess,通过将相同的垃圾随机文本放在.htaccess上,看看它是否会生成500个内部服务器错误?它已启用,当我在其中添加相同的垃圾时,我已经创建了500个内部服务器
SetEnv REGISTER_GLOBALS 0

<Files .htaccess>
   order allow,deny
   deny from all
</Files>

Options -Indexes

RewriteEngine On
RewriteBase /SerieJava/

RewriteRule ^Le-premier-chapitre chapitre1.php [L,NC]

RewriteRule ^Serie-examens-([0-9]+)-([0-9]+) examens-list.php?idChapitre=$1&idTitre=$2 [L,QSA,NC]
RewriteEngine On
RewriteBase /SerieJava
RewriteRule ^/Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]
RewriteEngine On
RewriteBase /SerieJava/
RewriteRule Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]