所以我有这个.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]
答案 0 :(得分:0)
我知道这个问题已经差不多一年了,但是我也遇到了这个问题,并在寻找答案时遇到了这个问题。
我在这里找到了答案:
在我的情况下,我做了以下(我运行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>
`
在/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页面,用于向访问者提供自定义/受控消息,而不是标准输出。
完成上述步骤后,我的URI https://api.sitename.com/rfq/new重定向到我的index.php脚本,我能够按预期处理URI的解析。
希望这有助于其他人解决他们的问题,我确实对此感到沮丧,但接近24小时后,终于解决了!
答案 1 :(得分:-1)
您的Apache上是否启用了mod_rewrite?