首页 > 解决方案 > htaccess 需要帮助重写 url 和改进代码

问题描述

我在 localhost 上有一个本地站点,我想清理 URL。
我已经编写了一些代码,但我需要帮助来完善它。

我的网址:localhost/root/pages/videos/videos.php
我想要的网址:localhost/root/videos/

  1. 我想删除 .php 并添加一个斜杠
  2. 如果用户没有在末尾添加斜线,则添加斜线
  3. 如果用户将 .php 放在 URL 中,则重定向到 404 页面
  4. 我要删除子目录页面和视频
  5. 如果用户在目录(不是文件)中,则重定向到 404 页面

这是我已经拥有的代码:

# Adds a 404 page
ErrorDocument 404 /root/pages/errors/404.php

# Turn on RewriteEngine
RewriteEngine On

Options All -Indexes

# Redirect .php to 404 page
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.php - [L,R=404]

# Redirect non slash to slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /root/$1/ [L,R=301]

# Rewrite .php to slash
RewriteRule ^([a-z-]+)/$ /root/pages/videos/$1.php [L]

问题:
1. 如果我在 localhost/root/ 目录中,并且当我添加例如后面的​​文本时,我会被重定向到 localhost/root/pages/videos/something.php/

标签: .htaccessmod-rewrite

解决方案


推荐阅读