如果URL中的文章标题是用全英文书写的,那么一切都会正确显示。但是如果标题是用希腊语写的,我会得到404页。不使用htaccess重写规则,它显示页面。
我的问题是我如何才能使用htaccess?
htaccess error when dealing with RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^article/([a-zA-Z0-9]+)/?$ article.php?title=$1 [NC,QSA,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
3个场景:
第一(英文字符):
title: hello
url: example.com/article/hello
OPENS THE PAGE
第二名(希腊字符):
title: γειά
url: example.com/article/γειά
The requested URL article/γειά.php was not found on this server.
第三(不使用htaccess):
/article.php?title=γειά
OPENS THE PAGE
答案 0 :(得分:0)
尝试:
RewriteRule ^article/(.*)/?$ article.php?title=$1 [NC,QSA,L]
这将允许“title”参数的任何输入,该参数应传递给任何输入。
答案 1 :(得分:0)
[a-zA-Z0-9]
只会匹配英文文本和数字。
将文章重写规则更改为:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^article/([^/]+)/?$ index.php?title=$1 [NC,QSA,L]
[^/]+
将匹配1个或多个任何字符,直到匹配下一个/
或达到字符串结尾,从而匹配非英语字符。