# PHP如何为.htaccess创建条件

3duebb1j  于 2022-11-16  发布在  PHP
关注(0)|答案(1)|浏览(132)

对不起,我用谷歌翻译.
我有 *.php

  • domainname.com/filename.php
  • domainname.com/file1.php?a=aa&b=bb
  • domainname.com/file2.php?a=cc

我想把它改成

  • domainname.com/filename(无文件扩展名)
  • domainname.com/aa/bb
  • domainname.com/cc

现在我只写三个条件,它不工作帮我解决它,谢谢你.

<IfModule mod_rewrite.c>  
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/(.*) /file1.php?a=$1&b=$2

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*) /file2.php?a=$1

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) $1.php [L]

 </IfModule>
wz3gfoph

wz3gfoph1#

您的实现几乎没有问题,我建议您进行一些小的修改:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?(.+)/(.+)$ /file1.php?a=$1&b=$2 [END]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?(.+)$ /file2.php?a=$1 [END]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^/?(.+)$ $1.php [END]

然而,你没有在你的问题中说什么是实际的,具体的问题,你面临的这些规则。这就是为什么我们不能肯定,如果上述代码将实际解决您的问题。
如果你有一个让重写工作的一般性问题,那么确保这些点涵盖:

  • 确保重写模块在http服务器中实际加载并激活。
  • 确保http服务器完全考虑分布式配置文件(.“htaccess”)。
  • 请确保您的配置文件位于http服务器主机配置中指定的DOCUMENT_ROOT文件夹中。请确保http服务器进程可以读取该文件。
  • 密切监视http服务器的错误日志文件。
  • 始终从全新的匿名浏览器窗口发出测试请求。

相关问题