RewriteRule不适用于新域

时间:2017-11-07 07:14:49

标签: .htaccess mod-rewrite subdomain

我在.htaccess中创建了一些RewriteRules,如果我从服务器的域/ URL调用我的网站,它们都可以工作。

现在我想将一个外部域指向我网站所在服务器上的子文件夹,但所有RewriteRules都不再有效。当我调用php文件时,一切都没问题,但是当我调用“漂亮”链接时,我想创建,然后只显示错误404.

这是我目前的.htaccess文件:

ErrorDocument 401 /401.php
ErrorDocument 404 /404.php
RewriteEngine On

#redirect www request to the base domain
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

#ignore existing files and directories
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule .* - [L]

# Check if query string exists
RewriteCond %{QUERY_STRING} ^$

# Check that the request is not for an existing file
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule    ^spielplan$    spielplan.php    [NC,L] 
RewriteRule    ^rangliste$    rangliste.php    [NC,L]
RewriteRule    ^alletipps$    allbets.php    [NC,L]
RewriteRule    ^benutzerseite$    userpage.php    [NC,L] 
RewriteRule    ^einstellungen$    usersettings.php    [NC,L] 
RewriteRule    ^spiel/([0-9]+)/?$    spiel.php?id=$1    [NC,L]
RewriteRule    ^user/([A-Za-z0-9-]+)/?$    user.php?name=$1    [NC,L]
RewriteRule    ^([A-Za-z0-9-]+)/?$    $1.php    [NC,L]

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

因为我试图将我的域映射到子文件夹,所以此子文件夹需要像DocumentRoot一样工作,而不是像子文件夹一样。

所以我需要添加:

{% assign sub_navigation = content | extract_element: 'h2' %}
{% for item in sub_navigation %}
  <li><a href="#{{ item.id }}">{{ item.text }}</a></li>
{% endfor %}

在我的.htaccess