Apache vhosts.conf重写规则
我的站点位于Apache vhosts.conf重写规则,apache,.htaccess,mod-rewrite,httpd.conf,Apache,.htaccess,Mod Rewrite,Httpd.conf,我的站点位于/srv/http/site dir/及其根.htaccess中,包含以下内容: Options -MultiViews RewriteEngine On Options -Indexes RewriteBase /site-dir/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^
/srv/http/site dir/
及其根.htaccess
中,包含以下内容:
Options -MultiViews
RewriteEngine On
Options -Indexes
RewriteBase /site-dir/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
它是这样工作的,但是现在我想把这些规则移到httpd-vhosts.conf文件中,所以我需要做些更改,使它从那里开始工作,从而避免使用我读到的.htaccess,如果您有权访问主.conf文件,那么这是一种床上练习吗
编辑:
将其输入我的httpd-vhosts.conf,按照建议尝试,但没有成功
<VirtualHost *:80>
DocumentRoot "/srv/http/site-dir"
ServerName project-site-dir.my
ServerAlias www.project-site-dir.my
Options -MultiViews -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^/site-dir/(.+)$ /site-dir/index.php?url=$1 [QSA,L]
ErrorLog "/var/log/httpd/project-site-dir.my-error_log"
CustomLog "/var/log/httpd/project-site-dir.my-access_log" common
</VirtualHost>
DocumentRoot“/srv/http/site dir”
ServerName project-site-dir.my
ServerAlias www.project-site-dir.my
选项-多视图-索引
重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-L
重写规则^/site dir/(.+)$/site dir/index.php?url=$1[QSA,L]
ErrorLog“/var/log/httpd/project site dir.my-error\u log”
CustomLog“/var/log/httpd/project site dir.my-access\u log”通用
您可以将此代码段放在您的httpd vhosts.conf
文件中:
<VirtualHost *:80>
DocumentRoot "/srv/http/site-dir"
ServerName project-site-dir.my
ServerAlias www.project-site-dir.my
Options -MultiViews -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^/(.+)$ /index.php?url=$1 [QSA,L]
ErrorLog "/var/log/httpd/project-site-dir.my-error_log"
CustomLog "/var/log/httpd/project-site-dir.my-access_log" common
</VirtualHost>
DocumentRoot“/srv/http/site dir”
ServerName project-site-dir.my
ServerAlias www.project-site-dir.my
选项-多视图-索引
重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-L
重写规则^/(.+)$/index.php?url=$1[QSA,L]
ErrorLog“/var/log/httpd/project site dir.my-error\u log”
CustomLog“/var/log/httpd/project site dir.my-access\u log”通用
您使用了什么URL来测试它?同时告诉我是否必须指定允许覆盖的地方或其他地方?如果DocumentRoot是/srv/http/site dir
,则URL应该是http://127.0.0.1/home/exampletwo
。我相信%{REQUEST\u FILENAME}
应该可以工作,但您可以始终使用更可靠的检查:RewriteCond%{DOCUMENT\u ROOT}%{REQUEST\u URI}-f
谢谢。现在更好了,因为在我做了更改之前,我没有呈现我的public/style.css