.htaccess 忽略标志,不匹配下一条规则
.htaccess ignoring flags, not matching next rule
我正在构建简单的 php mvc 应用程序,但是 .htaccess 有问题,看起来它忽略了标志并且不想 运行 下一行
Options -MultiViews
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(en|sk)(\/)(.+)$ index.php?url=&lang= [C]
RewriteRule ^(.+)$ index.php?url= [C]
我的目标是拥有多语言网站,地址像 http://example.com/lang/something, I used this as mvc skeleton link to github repo 但它运行不正常
去http://127.0.0.10
的时候,一切正常
转到 http://127.0.0.10/en/home
页面时也有效
转到 http://127.0.0.10/home
页面时无法正常工作
然后当我删除第一个规则或交换规则顺序时,转到 http://127.0.0.10/home
开始工作,但是当转到 http://127.0.0.10/en/home
时没有,我不明白第一种情况这里错误是因为应用程序认为 "en" 是控制器,但在第二种情况下呢?
重写条件仅适用于紧接的下一个 RewriteRule
,因此第二个 RewriteRule
没有任何条件。
试试这个代码:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteRule ^(en|sk)/(.+)$ index.php?url=&lang= [L,QSA]
RewriteRule ^(.+)$ index.php?url= [L,QSA]
我正在构建简单的 php mvc 应用程序,但是 .htaccess 有问题,看起来它忽略了标志并且不想 运行 下一行
Options -MultiViews
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(en|sk)(\/)(.+)$ index.php?url=&lang= [C]
RewriteRule ^(.+)$ index.php?url= [C]
我的目标是拥有多语言网站,地址像 http://example.com/lang/something, I used this as mvc skeleton link to github repo 但它运行不正常
去http://127.0.0.10
的时候,一切正常
转到 http://127.0.0.10/en/home
页面时也有效
转到 http://127.0.0.10/home
页面时无法正常工作
然后当我删除第一个规则或交换规则顺序时,转到 http://127.0.0.10/home
开始工作,但是当转到 http://127.0.0.10/en/home
时没有,我不明白第一种情况这里错误是因为应用程序认为 "en" 是控制器,但在第二种情况下呢?
重写条件仅适用于紧接的下一个 RewriteRule
,因此第二个 RewriteRule
没有任何条件。
试试这个代码:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteRule ^(en|sk)/(.+)$ index.php?url=&lang= [L,QSA]
RewriteRule ^(.+)$ index.php?url= [L,QSA]