使用.htaccess
apache重写我希望从我的网址中删除子文件夹/子字符串。现在它看起来像:
www.domain.com/store/products.php`
我希望将其更改为:
www.domain.com/products.php
如何使用.htaccess
apache重写?
答案 0 :(得分:6)
您可以使用根.htaccess
:
RewriteEngine on
RewriteBase /
RewriteRule ^store/(.*) /$1 [R=302,L]
当测试工作正常时,更改[R=302]
[R=301]
。
答案 1 :(得分:1)
您需要mod_rewrite。规则将是这样的:
RewriteEngine On
RewriteBase /myapp/
RewriteRule ^/store/products\.php$ /products.php
或者,对于许多不同的文件,例如products.php
,places.php
,blablabla.php
:
RewriteEngine On
RewriteBase /myapp/
RewriteRule ^/store/([a-z]+)\.php$ /$1.php
这取决于您要重写的URL。你应该阅读文档。
另外,我建议您使用以下catch all URLs
模式。它会将任何路径重定向到index.php
。这在许多CMS系统中广泛使用,使您能够使用PHP
执行动态路由:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [L,QS
<?php
$path = isset($_GET['path']) ? explode('/', $_GET['path']) : array();
// If you navigate to /foo/bar/dead/beef, yur $path var will be like:
// $path == array ( 0 => 'foo', 1 => 'bar', 2 => 'dead', 3 => 'beef' );
?>