.htaccess - htaccess 重写规则不起作用

标签 .htaccess

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

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

  • 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

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

最佳答案

正如 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]

关于.htaccess - htaccess 重写规则不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940567/

相关文章:

regex - .htaccess 重定向到语言子文件夹

linux - 503 htaccess 文件仅部分工作

php - .htaccess 删除扩展名不起作用

.htaccess - 何时在 mod_rewrite 中使用 [L] 标志

.htaccess 强制 www。和特定域的 https

.htaccess - 仅针对一个目录删除带有 .htaccess 的 .php 扩展名?

.htaccess - 我的 htaccess 规则不适用于实时服务器上的项目(htaccess 在文件夹内)

css - .htaccess - 路径末尾的斜杠不加载 CSS

apache - 设置自定义处理程序时重定向失败

javascript - htaccess RewriteRule 不加载 js-css 库