我尝试了这个世界上的所有东西,以使其正常工作,但它根本不会。我完成了自动重写。如果你认为你知道可能导致这种情况的原因,你仍然可以回答,但我怀疑这是可能的。
问题:
我将如何继续手动 mod_rewrite
每个页面:
domain.com/showthread.php?id=00
至domain.com/showthread?id=00
.htaccess
/page
重定向到/page.php
,但在网址栏中显示/page
(之前我已经问过(Remove .php from URL)如何自动重写这个但是我无法让它正常工作,而且我的时间和精力都很耗尽。而咖啡。)
问题:
即使
<?php
phpinfo();
将mod_rewrite列为已启用
<?php
if(!function_exists('apache_get_modules') ){ phpinfo(); exit; }
$res = 'Module Unavailable';
if(in_array('mod_rewrite',apache_get_modules()))
$res = 'Module Available';
?>
<html>
<head>
<body>
<p><?php echo apache_get_version(),"</p><p>mod_rewrite $res"; ?></p>
</body>
</html>
显示“可用模块”
..它仍无法正常运作。
/page
和/page/
在所有情况下都会返回404 /page.php
正常工作,没有条形重写或根本不起作用。我尝试了以下a.o。:
(1)
# Apache Rewrite Rules
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
# End of Apache Rewrite Rules
</IfModule>
(2)
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
(3)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
(4)
RewriteRule ^page$ page.php [L]
备注:
sudo service apache2 restart
不会改变任何内容。
服务器重启不会改变任何内容。
我尝试清除其他代码,没有做任何改动。
我清除了浏览器缓存100次
注意:
请在回答之前阅读帖子。我很确定这不是你的平均mod_rewrite问题。
答案 0 :(得分:1)
我想你的htaccess根本不起作用。检查apache conf文件以获取以下信息 ... AllowOverride无 ...
并将其更改为AllowOverride All