Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache vhosts.conf重写规则_Apache_.htaccess_Mod Rewrite_Httpd.conf - Fatal编程技术网

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