获取页面ID值并通过.htaccess在URL中显示

我试图通过在我们的.htaccess文件中重写显示SEO友好的URL,但我不能得到它的工作(我已经研究了StackExhange和其他地方的许多相关的主题,但无济于事)。 我想在此页面上获得该ID的价值…

http://199.119.123.135/info/tool_surety_company.php?id=1

…并在URL中显示id值,而不是丑陋的“tool_surety_company.php?id = 1”。

我想要这样的结果: http : //199.119.123.135/info/travelers-group

我在我的.htaccess文件中使用下面的代码:

RewriteCond %{THE_REQUEST} \ /+info/tool_surety_company\.php\?id=([^&]+) RewriteRule ^ /info/%1/? [L,R] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^^info/([^/]+)/?$ /info/tool_surety_company.php?id=$1 [QSA] 

但是我收到一个404错误。

有任何想法吗? 提前致谢!

有可能是我在这里误解的东西,但我相信这将需要在服务器端代码加载正确的内容为新的“网友友好的网址”的机制。 换句话说,当然,您可以重定向用户以显示不同的url,但服务器将如何知道要为新的url加载哪些内容?

这里有一个很好的资源来整理一个简单的例子。 https://moz.com/ugc/using-mod-rewrite-to-convert-dynamic-urls-to-seo-friendly-urls

更新:

从这里 – https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules

故障排除

404没有找到

仔细检查浏览器中的新网址。 它是否与由重写规则指定的新位置中的服务器上存在的文件相匹配? 您可能必须使您的重写规则更加广泛(您可以从第二个字符串中删除$ 1)。 这将直接重写到第二个字符串中给出的主索引页面。 或者,您可能需要将文件从旧位置复制到新位置。

换句话说,你得到404的唯一原因是因为服务器没有找到请求的文件,如浏览器地址栏中显示的URL所定义的那样。

Htaccess重写是通过使用Apache模块mod_rewrite启用的,该模块是最强大的Apache模块之一,具有可用特性。 Htaccess通过mod_rewrite重写提供了内部重写请求和外部重定向请求的特殊功能。

当浏览器的地址栏中的网址对于请求保持不变时,这是一个内部重写,当url更改外部重定向时发生。 这是人们了解mod_rewrite的第一个,也是最大的心理障碍之一。

更多信息从这里: http : //www.askapache.com/htaccess/modrewrite-tips-tricks.html