3

我创建了一个站点的子域。子域指向根目录上的文件夹。

由于某些原因,以下重写规则不起作用。两个细分网址正在工作。一个不工作,两个以上不工作。请参阅下面的网址。

  • subdomain.domain.com/register(不工作)
  • subdomain.domain.com/temp/register(在职的)

当我动态创建两个段时,它们不起作用。

  • subdomain.domain.com/dynamic1/dynamic2(不工作)

.

Options +FollowSymlinks
RewriteEngine   On
RewriteBase     /
RewriteCond     %{HTTPS} on
RewriteRule     (.*) http://%{HTTP_HOST}%{REQUEST_URI}

#FOR REPLACING .HTML EXTENSION (WORKS FINE)
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteCond     %{REQUEST_FILENAME}\.html -f
RewriteRule     ^(.*)$ $1.html

#FOR REPLACING .PHP EXTENSION (NOT WORKING)
RewriteRule     ^([a-zA-Z0-9_-]+)$ $1.php
RewriteRule     ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1.php

如果你不明白这个问题,请告诉我。

4

1 回答 1

2

就像 Michael Berkowsk 建议的那样,您可能希望在L规则的末尾添加标志,以便在应用规则时结束重写。除此之外,您拥有的 2 段规则仅使用第一个作为反向引用,我假设您想同时使用两者?尝试将规则更改为如下所示:

Options +FollowSymlinks
RewriteEngine   On
RewriteBase     /

# the HTTP redirect
RewriteCond     %{HTTPS} on
RewriteRule     (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R]

#FOR REPLACING .HTML EXTENSION (WORKS FINE)
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteCond     %{REQUEST_FILENAME}\.html -f
RewriteRule     ^(.*)$ $1.html [L]

#FOR REPLACING .PHP EXTENSION 
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteCond     %{REQUEST_FILENAME}\.php -f
RewriteRule     ^(.*)$ $1.php [L]

RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ location.php?li_id=$1&lid=$2 [L]
于 2012-12-18T20:25:07.660 回答