所有的教程都告诉我编辑:/etc/apache2/sites-available/default但这个文件对我来说不存在。在这个文件中,我必须编辑:
Run Code Online (Sandbox Code Playgroud)<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None #AllowOverride All #AllowOverride AuthConfig FileInfo Indexes Limit Options=All, MultiViews Order allow,deny allow from all </Directory>
文件应该是什么样的,我应该自己创建吗?
Aslo我确实有一个000-default.conf文件,但上面的“代码”也不在那里。
我正在尝试设置一个 PHP 路由库。他们给出了一个 .htaccess 文件的例子:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Run Code Online (Sandbox Code Playgroud)
我无法让它工作,所以我尝试启用 mod_rewrite,但它显示“模块重写已经启用”。
为什么它不能正常工作?谢谢!我正在运行 Ubuntu Precise 12.04 和 apache2.2.22。(检查是否有任何更新)
编辑:更多细节,它是一个 PuPHPet vagrant 构建,应该启用重写。
好的,关于如何使用 mod_rewrite 有很多线程,但我发现它在 Apache 2.4 中的工作方式似乎有所不同。我试过这个:
<Directory /var/www/vhosts/example.com>
<IfModule mod_rewrite>
RewriteEngine On
RewriteBase /var/www/vhosts/example.com
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
</Directory>
Run Code Online (Sandbox Code Playgroud)
这是位于/etc/apache2/conf-available/httpd.conf/,我已经矮了sudo a2enconf httpd.conf运行并启用了它,但它无论如何都不想工作..
我没有尝试过Directory,我尝试按照mod_rewrite.cwordpress建议的方式调用它,但上述两种方法似乎都不起作用。我也尝试过使用Directory标记但没有使用IfModule,由于显而易见的原因,最终导致 Apache 无法启动.. 是的,我在每次尝试之间重新启动 Apache。
Apache 2.4 中是否有我不知道的新技巧?任何帮助表示赞赏。
我一直在 ubuntu 服务器(amazone)上的一个网站上工作,我得到 404s 进入页面。
我将提供有关该问题的所有信息。
在 WordPress 上


刷新页面:

我跟着这个教程:
https://wordpress.org/support/topic/solved-permalinks-working-in-apache2-ubuntu-1010?replies=6
没有任何帮助。
我发现这篇文章https://wordpress.org/support/topic/permalink-does-not-work-apart-from-default?replies=12 - 所以我输入了我输入的文件:/etc/apache2/sites-enabled/000-default.conf
并没有找到AllowOverride None更改为AllowOverride All所以我自己在这里添加了它:

重新启动 apache,出现错误。我刷新了网站,发现它不起作用..
撤消AllowOverride All自000-default.conf
解决这个问题的方法是什么?我从未使用过 Linux 服务器,所以我需要一个非常清晰且解释清楚的答案。
顺便说一句,这是 WP 在我的 .htaccess 文件中生成的内容:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Ubuntu 16.04、Apache 2 和 PHP7 在虚拟专用服务器 (OVH) 上安装 Drupal 8.1.10。我跟着这个教程:
https://www.howtoforge.com/tutorial/how-to-install-drupal_8-with-apache-and-ssl-on-ubuntu-15-10/
我被困在需求级别。Drupal 告诉我未启用干净的 url。我已将此添加到我的 apache2.conf 和我的 drupal.conf :
<Directory "/var/www/drupal">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
Run Code Online (Sandbox Code Playgroud)
仍然不起作用。几个小时以来,我一直在寻找问题所在,但找不到解决方案。
有什么帮助吗?谢谢
我已经安装apache2然后我mod_rewrite像这样启用模块:
sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)
启用后,我对这些行感到困惑,我无法理解如何处理它们,据我所知,我必须对这些行做的是“找到以下部分,然后更改表示 AllowOverride 的行没有对所有人。”
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
我的问题是我找不到包含上述行进行编辑的文件。我已经看过了/etc/apache2/sites-available/。在那个目录中,我只找到了两个文件:
000-default.conf
default-ssl.conf
Run Code Online (Sandbox Code Playgroud)
在这两个文件中,我都找不到上面需要编辑的行。
我编辑了/etc/apache2/apache2.conf这个目录中的文件 ,但它仍然没有工作。
我也查看了这个/etc/apache/sites-enabled/default.conf目录,但我找不到这些行dafault.conf
<Directory /var/www/html>
AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)
我在/var/www/html目录中工作,那么为什么它给我 403 禁止错误。
仍然.htaccess没有运行。它给了我 403 禁止错误。
这是文件夹权限的屏幕截图:

这是 403 禁止错误的屏幕截图:

Ubuntu 14.04
Apache/2.4.7
我在这里发布我的虚拟主机和默认 ssl 主机的 conf 文件。无法弄清楚我做错了什么。
http://<website_url> 显示文件夹的索引。我想将此重定向到https。
https://<website_url> 打开很好。
重要提示:我尚未启用默认 SSL 站点。
cat default-ssl.conf|grep -v "#"
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
</IfModule>
Run Code Online (Sandbox Code Playgroud)
这是 mywebsite 配置文件:
cat www.mywebsite.com.conf|grep -v "#"
<VirtualHost *:443> …Run Code Online (Sandbox Code Playgroud)