Apache .htaccess从动态页面url访问静态页面

Apache .htaccess从动态页面url访问静态页面,apache,.htaccess,mod-rewrite,apache2,Apache,.htaccess,Mod Rewrite,Apache2,我想创建.htaccess的动态规则,以便从以下位置重定向页面: http://www.mydomain.com/subdir/index.php?id=11&title=my-page-title 致: 其中: -id是一个整数 -标题是字符串 我在stack overflow上发现了一个类似的示例,但仅使用一个$\u GET值,而不使用,请尝试以下方法: RewriteRule /([0-9]+)/([a-z-]+) subdir/index.php?id=$1&title

我想创建.htaccess的动态规则,以便从以下位置重定向页面:

http://www.mydomain.com/subdir/index.php?id=11&title=my-page-title
致:

其中: -id是一个整数 -标题是字符串

我在stack overflow上发现了一个类似的示例,但仅使用一个$\u GET值,而不使用

,请尝试以下方法:

RewriteRule /([0-9]+)/([a-z-]+) subdir/index.php?id=$1&title=$2
此规则将查找至少包含1个数字和小写字符串的数字,该字符串可以包含减号,也可以是a或-。

请尝试以下操作:

RewriteRule /([0-9]+)/([a-z-]+) subdir/index.php?id=$1&title=$2

此规则将查找一个至少有1个数字的数字和一个小写字符串,该字符串可以包含减号,可以是a,也可以是-。

您的措辞实际上是错误的。您要做的是路由传入请求,例如:

http://www.mydomain.com/11/my-page-title
到/subdir/index.php处的脚本


请注意,这种特殊的方法将重定向服务器上的*/*格式的所有内容。如果您需要对静态文件进行例外处理,或者只希望重定向某些模式,那么您的问题应该更具体。

您的措辞实际上是错误的。您要做的是路由传入请求,例如:

http://www.mydomain.com/11/my-page-title
到/subdir/index.php处的脚本


请注意,这种特殊的方法将重定向服务器上的*/*格式的所有内容。如果您需要对静态文件进行例外处理,或者只希望重定向某些模式,那么您的问题应该更具体。

我有index.php,用于管理存储在表中数据库中的页面,我有列id、标题,html,我想创建一个规则,使整个网站的搜索引擎优化更友好。我尝试添加了一些例外,如includes目录,所有这些似乎都正常工作。请您解释一下[L,QSA]的含义好吗?@Danilo L标志表示将其视为文件中的最后一条规则。在另一个过程中,这条规则并没有遵循它。这是防止任何可能改变所需结果的额外重写的首要条件。QSA标志是一个查询字符串附加,所以假设您仍然希望将URL参数传递到干净的URL中。这将获取传递的任何此类参数,并将它们添加到重定向URL的末尾。使用Code Igniter 2,我必须将所有未找到的文件/目录重定向到index.php,然后在application/config/routes.php中添加一个重定向到控制器方法的路由。我试图仅在.htaccess中解决它,但没有成功。只有当路由+不存在的重定向到index.php/$1时才起作用。所以我的意思是:RewriteBase上的RewriteEngine/RewriteCond%{REQUEST_FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则。*index.php/$1[L,QSA]。+我有index.php来管理存储在数据库中的页面,在一个表中,我有列id,title,html,我想创建一个规则,使整个网站的搜索引擎优化更友好。我尝试添加了一些例外,如includes目录,所有这些似乎都正常工作。请您解释一下[L,QSA]的含义好吗?@Danilo L标志表示将其视为文件中的最后一条规则。在另一个过程中,这条规则并没有遵循它。这是防止任何可能改变所需结果的额外重写的首要条件。QSA标志是一个查询字符串附加,所以假设您仍然希望将URL参数传递到干净的URL中。这将获取传递的任何此类参数,并将它们添加到重定向URL的末尾。使用Code Igniter 2,我必须将所有未找到的文件/目录重定向到index.php,然后在application/config/routes.php中添加一个重定向到控制器方法的路由。我试图仅在.htaccess中解决它,但没有成功。只有当路由+不存在的重定向到index.php/$1时才起作用。所以我的意思是:RewriteBase上的RewriteEngine/RewriteCond%{REQUEST_FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则。*index.php/$1[L,QSA]。+所述配置文件中的路由。