Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何对预先存在的.htaccess文件进行URL重写?_Apache_.htaccess_Url Rewriting - Fatal编程技术网

Apache 如何对预先存在的.htaccess文件进行URL重写?

Apache 如何对预先存在的.htaccess文件进行URL重写?,apache,.htaccess,url-rewriting,Apache,.htaccess,Url Rewriting,我有一个目前可以通过URL访问的论坛: www.website.com/index.php?app=论坛 相反,我希望人们能够: www.website.com/forum 不过,这里有一个要点-已经有一个.htaccess文件包含以下内容: <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCon

我有一个目前可以通过URL访问的论坛:

www.website.com/index.php?app=论坛

相反,我希望人们能够:

www.website.com/forum

不过,这里有一个要点-已经有一个.htaccess文件包含以下内容:

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

选项-多视图
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
这似乎是可能的,但我不知道自己该怎么做


谢谢

还没有测试过这个,但是类似的东西应该可以工作。在第一个RewriteCond指令之前添加此命令

RewriteRule ^forum$ /index.php?app=forums
或者,您也可以执行从/forum到index.php URL的301重定向

通过这样做:

Redirect 301 /forum "http://www.website.com/index.php?app=forums

但是,看起来您需要进行适当的重写,因此第一个选项更好,

谢谢您的回答。我试着在
RewriteBase/
下面添加一行,但它不起作用。另外,我不想重定向,因为我实际上希望人们通过此URL访问论坛。我目前没有apache设置,但您可以尝试执行301重定向:
redirect 301/forum“http://www.website.com/index.php“
将其添加到.htaccess文件的顶部。此外,这将帮助您了解apache是否实际使用了.htaccess文件/mod rewrite,输入一个没有与之关联的文件/目录的URL,如website.com/blahblahblah,并查看它是否将您重定向到index.php。也许值得;)我看到你在问题中改变了你的get参数。更新了答案以反映这一点。