htaccess 多个 RewriteConds
htaccess multiple RewriteConds
这是我的站点根目录
/public_html
beta/
.htaccess
public/
index.php
.htaccess
beta 文件夹中的第一个 .htaccess 用于将目录从 mysite.com/beta 更改为 mysite.com/beta/public
:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.mysite.com/$
RewriteCond %{REQUEST_URI} !beta/public/
RewriteRule (.*) /beta/public/ [L]
public 文件夹中的 other.htaccess 是为了缩短 url 从 index.php?photo_id=id
到 /id
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?photo_id=
我怎样才能使它们同时工作,因为目前只有其中一个不能一起工作?谢谢
为什么 public_html 中有 "non public" 东西?如果你想让它私有,你不应该把它放在一个私有目录中吗?
对于 beta htaccess 文件,请尝试删除绝对 URL
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\)?mysite\.com$ [NC]
RewriteCond !^public
RewriteRule ^(.*)$ public/ [L]
请注意,需要从 HTTP_HOST 中删除结尾的斜杠,该变量中没有斜杠。
对于 public 文件夹,也删除绝对 URL
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?photo_id=
这是我的站点根目录
/public_html
beta/
.htaccess
public/
index.php
.htaccess
beta 文件夹中的第一个 .htaccess 用于将目录从 mysite.com/beta 更改为 mysite.com/beta/public
:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.mysite.com/$
RewriteCond %{REQUEST_URI} !beta/public/
RewriteRule (.*) /beta/public/ [L]
public 文件夹中的 other.htaccess 是为了缩短 url 从 index.php?photo_id=id
到 /id
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?photo_id=
我怎样才能使它们同时工作,因为目前只有其中一个不能一起工作?谢谢
为什么 public_html 中有 "non public" 东西?如果你想让它私有,你不应该把它放在一个私有目录中吗?
对于 beta htaccess 文件,请尝试删除绝对 URL
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\)?mysite\.com$ [NC]
RewriteCond !^public
RewriteRule ^(.*)$ public/ [L]
请注意,需要从 HTTP_HOST 中删除结尾的斜杠,该变量中没有斜杠。
对于 public 文件夹,也删除绝对 URL
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?photo_id=