每个页面手动mod_rewrite

时间:2015-05-21 12:54:38

标签: php apache .htaccess mod-rewrite url-rewriting

我尝试了这个世界上的所有东西,以使其正常工作,但它根本不会。我完成了自动重写。如果你认为你知道可能导致这种情况的原因,你仍然可以回答,但我怀疑这是可能的。

问题: 我将如何继续手动 mod_rewrite每个页面:

domain.com/showthread.php?id=00domain.com/showthread?id=00

  • 需要使用不同的线程ID 。它需要合作 其他.php页面也可以手动添加到.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问题。

1 个答案:

答案 0 :(得分:1)

我想你的htaccess根本不起作用。检查apache conf文件以获取以下信息     ...     AllowOverride无     ...

并将其更改为AllowOverride All