如何使.htaccess重写规则不影响index.php规则

如何使.htaccess重写规则不影响index.php规则,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我在我的项目中使用GET请求,我想用一种简单的方式重写URL:如果我访问mydomain.com/test,它将在我的服务器端请求mydomain.com/GET.php?txt=test 这是我的.htaccess RewriteRule,它工作正常,但问题是它也会影响我的index.php,所以如果我转到主页,它会启动:mydomain.com/get.php?txt=test请求,并且因为我的RewriteRule而不打开mydomain.com/index.php Options +Fo

我在我的项目中使用GET请求,我想用一种简单的方式重写URL:如果我访问
mydomain.com/test
,它将在我的服务器端请求
mydomain.com/GET.php?txt=test

这是我的.htaccess RewriteRule,它工作正常,但问题是它也会影响我的index.php,所以如果我转到主页,它会启动:
mydomain.com/get.php?txt=test
请求,并且因为我的RewriteRule而不打开
mydomain.com/index.php

Options +FollowSymLinks
RewriteEngine On
RewriteRule (.*)$ get.php?url=$1 [L]
我不想在mydomain.com/1/test这样的路径中创建任何额外的子级别,它应该位于根目录的下一个级别

谢谢你的帮助。谢谢大家!

添加

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
在重写规则之前。

这样可以吗

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteRule (.*)$ get.php?url=$1 [L]

最常见的方法是添加条件,仅重写不存在的资源(文件和文件夹):

另一种可能的方法(适用于原始请求)是在请求
/index.php
时忽略此规则:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule (.*) get.php?url=$1 [L]

方法#1是高度推荐的,并且非常普遍。但是也许您也可以通过
get.php
提供所有资源(图像/样式/javascripts/等)(我不知道您的应用程序是做什么的,它是如何工作的),因此我提供了另一种方法。

谢谢第一种方法非常有效!忽略任何现有资源是个好主意!再次感谢你!感谢分享您的知识,您的重写应该工作得很好,正如LAzyOne所写的那样添加,并且它工作得很好!谢谢
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule (.*) get.php?url=$1 [L]