.htaccess 如何进行htaccess选择性重定向

.htaccess 如何进行htaccess选择性重定向,.htaccess,redirect,.htaccess,Redirect,因此,我想重定向所有URL,例如 domain.com/bang 到 除了 当我有一个特定的 domain.com/specific 我想把它改成 domain.com/specific.php 这应该很容易,但出于某种原因,它给了我太多的麻烦。例如,我真的不明白为什么这不起作用: Options +FollowSymLinks RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME

因此,我想重定向所有URL,例如

domain.com/bang

除了

当我有一个特定的

domain.com/specific
我想把它改成

domain.com/specific.php
这应该很容易,但出于某种原因,它给了我太多的麻烦。例如,我真的不明白为什么这不起作用:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(.*)specific$ ./specific.php
RewriteRule ^(.+)/?$ ./process.php?id=$1

重写条件只适用于紧跟其后的规则,因此您需要复制条件,或者移动条件以便将其应用于上一个规则,因为这才是真正需要的规则。
^(+)/?$
正则表达式将匹配任何内容,包括
specific.php
process.php

尝试:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(.*)specific$ ./specific.php
RewriteRule ^(.+)/?$ ./process.php?id=$1
Options +FollowSymLinks
RewriteEngine On

RewriteRule ^specific$ /specific.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/?$ /process.php?id=$1 [L]