.htaccess 命令'RewriteEngine'无效,可能拼写错误或由未包含在服务器配置中的模块定义

2q5ifsrm  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(124)

所以我有这个.htaccess为我重写了一个URL,它一直没有工作。
如果我选中var/logs/apache2/error_log,它会显示:-

[[Sun Jul 16 18:22:28.958099 2017] [core:alert] [pid 4237] [client ::1:54344] /Library/WebServer/Documents/getcv/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

我甚至在httpd.conf中启用了rewrite_module

LoadModule request_module libexec/apache2/mod_request.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module libexec/apache2/mod_filter.so

这里是**.htaccess**

Options +FollowSymLinks
RewriteEngine On
RewriteBase /foldername/

RewriteCond %{THE_REQUEST} /my_profile\.php\?username=([^\s&]+) [NC]
RewriteRule ^ %1? [R=301,L,NE]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([\w-]+)/?$ my_profile.php?username=$1 [L,QSA]
pw9qyyiw

pw9qyyiw1#

我知道这个问题已经有一年了,但我也遇到了这个问题,并在寻找答案时遇到了这个问题。
我在这里找到了答案:
https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04
在我的例子中,我做了以下操作(我运行Ubuntu 16.x.x)
1.已编辑/etc/apache2/apache2.conf-我已添加

<Directory /var/www/html/api>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride All
   Order allow,deny
   allow from all
 </Directory>

1.在/var/www/html/api/.htaccess中,我添加了

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
RewriteRule ^.*$ /index.php [L,QSA]
FallbackResource /index.php

ErrorDocument 404 /api404.php

请注意,api404.php只是我自己的自定义404页面,以向访问者提供一个自定义/受控消息来代替标准输出。
1.然后,如上面链接中所述,我通过运行以下命令启用了module_override:

sudo a2enmod rewrite
sudo service apache2 restart

完成上述步骤后,我的URI https://api.example.com/rfq/new重定向到我的index.php脚本,我能够按预期处理URI的解析。

wixjitnu

wixjitnu2#

此超级用户命令行启用Apache2中的mod重写

a2enmod重写

相关问题