这是htaccess文件中的规则:
RewriteRule ^Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]
在href我已经把这个网址:
href="<?php echo 'Serie-examens-'.$idChapitre.'-'.$idTitres[0].'-debuter');?>"
当我点击链接时出现此错误:
Not Found
The requested URL /SerieJava/Serie-examens-1-1-debuter was not found on this server.
我正在使用wamp,我测试没有变量的重写url,它可以正常工作
规则中的错误在哪里?
Full .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]
感谢
答案 0 :(得分:0)
你有一个关闭)在链接php中不应该存在:
href="<?php echo 'Serie-examens-'.$idChapitre.'-'.$idTitres[0].'-debuter');?>"
^ here
这可能导致php错误导致链接无效。
修改:还要注意您正在使用它来重写:
RewriteRule ^Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]
^
表示开始,所以如果您的路径为/SerieJava/Serie-examen....
,则不会重写,因为它以/SerieJava/
开头。
你应该发布整个.htaccess
文件,看看是不是问题,但看起来是这样。
答案 1 :(得分:0)
这应该是您的/SerieJava/.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,NC]
RewriteRule ^Serie-examens-([0-9]+)-([0-9]+) examens-list.php?idChapitre=$1&idTitre=$2 [L,QSA,NC]
答案 2 :(得分:0)
尝试在重写规则中添加/
:
RewriteEngine On
RewriteBase /SerieJava
RewriteRule ^/Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]
请注意/
之后^
Serie
您也可以尝试从规则中删除carot:
RewriteEngine On
RewriteBase /SerieJava/
RewriteRule Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]