标签: mod-rewrite

启用 .htaccess 文件重写路径(不起作用)

所有的教程都告诉我编辑:/etc/apache2/sites-available/default但这个文件对我来说不存在。在这个文件中,我必须编辑:

<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>
Run Code Online (Sandbox Code Playgroud)

文件应该是什么样的,我应该自己创建吗?

Aslo我确实有一个000-default.conf文件,但上面的“代码”也不在那里。

apache2 mod-rewrite .htaccess

22
推荐指数
3
解决办法
15万
查看次数

mod_rewrite 已启用,但不起作用

我正在尝试设置一个 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 构建,应该启用重写。

apache2 mod-rewrite

22
推荐指数
3
解决办法
10万
查看次数

mod_rewrite 在 Apache 2.4 中的使用

好的,关于如何使用 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 中是否有我不知道的新技巧?任何帮助表示赞赏。

mod-rewrite apache2.4

7
推荐指数
1
解决办法
4万
查看次数

为什么我在 LAMP 永久链接上得到 404(使用 wordpress)

我一直在 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 All000-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)

lamp apache2 wordpress mod-rewrite .htaccess

5
推荐指数
1
解决办法
5052
查看次数

如何在 Ubuntu 16.04、Drupal 8.1.10 和 Apache 2 中启用干净的 url

我正在尝试使用 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 drupal mod-rewrite 16.04 php7

5
推荐指数
1
解决办法
6429
查看次数

启用 mod_rewrite 模块后如何配置 htaccess 文件?

我已经安装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 禁止错误的屏幕截图: 在此处输入图片说明

apache2 webserver mod-rewrite .htaccess 14.04

4
推荐指数
1
解决办法
2万
查看次数

HTTP 到 HTTPS 重写规则不起作用

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)

apache2 mod-rewrite mod-ssl

3
推荐指数
1
解决办法
4万
查看次数