我在Laravel中创建了一个应用程序。 我最初的.htaccess是:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
它适用于域api.viglug.org。 在我添加m.forum.viglug.org域(与api.viglug.org的相同根目录)之后。 此时调用api.viglug.org和m.forum.viglug.org完全相同。 我想使用m.forum.viglug.org作为文件夹api.viglug.org/mobile,所以我认为它可以使用这个.htaccess:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} m\. [NC]
RewriteRule ^(.*)$ index.php/mobile/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
我错了。如果我使用m.forum.viglug.org,它会一直返回错误500,而api.viglug.org按预期工作。 我该如何解决这个问题?
答案 0 :(得分:1)
由于以下两个条件,原始重写仅对作为真实文件或目录不存在的文件运行:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
您是否尝试将这两个条件添加到您的附加规则之上?
# Mobile site
RewriteCond %{HTTP_HOST} m\. [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/mobile/$1 [L]
# Normal site
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]