这是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');?>"
当我点击链接时,我有这个错误:
Not Found
The requested URL /SerieJava/Serie-examens-1-1-debuter was not found on this server.
我正在使用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
这可能会导致php错误,使您的链接无效。
Edit:还请注意,您正在使用此重写:
RewriteRule ^Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]
^
表示开始,所以如果你的路径是/SerieJava/Serie-examen....
,它将不会被重写,因为它以/SerieJava/
开头。
你应该发布整个.htaccess
文件,看看是否这是问题,但它看起来是。
这应该是你的/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]
尝试在您的重写规则中添加/
:
RewriteEngine On
RewriteBase /SerieJava
RewriteRule ^/Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]
注意/
在^
之后,Serie
之前
你也可以试着从规则中删除胡萝卜:
RewriteEngine On
RewriteBase /SerieJava/
RewriteRule Serie-examens-([0-9]+)-([0-9]+)-([a-zA-Z]+)$ examens-list.php?idChapitre=$1&idTitre=$2 [L]