我需要什么样的htaccess规则来容纳文件夹中的文件?

时间:2015-06-19 08:45:50

标签: php apache .htaccess mod-rewrite

我在htaccess文件中使用以下代码重写我的投资组合网站网址

RewriteEngine On
RewriteBase /

#remove enter code here.php; use THE_REQUEST to prevent infinite loops
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]

# remove index
RewriteRule (.*)/index$ $1/ [R=301]

# remove slash if not directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301]

# add .php to access file, but don't redirect
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

这一切都有效,直到我想从blog-post.php页面导航到另一个页面 例如,假设我想转到关于页面,网址变为cgarcia.design/web/about,它应该是cgarcia.design/about,以便页面可以正常加载。 现在我需要更改htaccess文件以容纳文件夹中的文件?

我的导航结构如下

  • 工作
  • 恢复
  • 博客 - 帖子文件夹 - 条目
  • 接触

感谢您提出任何建议。

1 个答案:

答案 0 :(得分:0)

将此添加到您的文档中:

RewriteRule ^$ web/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ web/$1