Php URL重写不适用于变量
这是htaccess文件中的一条规则: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,我测试了在没有
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]