.htaccess 尝试将uri重定向到带有参数的页面

.htaccess 尝试将uri重定向到带有参数的页面,.htaccess,redirect,uri,.htaccess,Redirect,Uri,我遇到的问题是我试图做两件事 从页面中删除.php 将/user/12345重定向到/user?id=12345 我使用HTACCESS文件进行此操作 RewriteEngine On #remove .PHP from filenames RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] # Get user info for uri RewriteCond %{REQUEST_FILENAME

我遇到的问题是我试图做两件事

  • 从页面中删除.php
  • 将/user/12345重定向到/user?id=12345
  • 我使用HTACCESS文件进行此操作

    RewriteEngine On
    #remove .PHP from filenames
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC,L] 
    
    # Get user info for uri
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^user/(.*)$ user?UserID=$1 [L]
    
    php被删除,但当我键入像/user/12345这样的URL时,我被重定向到主页,而不是用户页面

    我做错了什么?

    我认为您至少需要重写到
    user.php?UserID=$1


    如果您可以提高mod_rewrite日志记录级别,它会在日志中显示其工作情况,如果您可以跟踪所发生的情况,这将非常有用。

    我让它工作了,它是按照两个步骤的顺序进行的 这是正确且有效的HTACCESS

    RewriteEngine On
    # Get user info for uri
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^user/(.*)$ /user.php?UserID=$1 [L]
    
    #remove .PHP from filenames
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC,L] 
    
    谢谢你的帮助