我有两个表 posts & categories
post_id | post_title | post_content | post_cat
--------------------------------------------------
1 Hello World welcome to my.. 1
. .. .. ..
类别表
cat_id | cat_name | cat_parent
-----------------------------
1 News NULL
2 Sports 1
. ... ..
假设新闻的当前类别链接是 http://domain.com/category/1/
MySQL 语句
SELECT posts.post_id,
posts.post_id,
posts.post_title,
posts.post_content,
posts.post_cat,
categories.cat_id,
categories.cat_name,
categories.cat_parent
FROM posts
INNER JOIN categories
ON posts.post_cat = categories.cat_id
WHERE posts.post_cat = (int)$_GET['cat_id']
所以我们可以得到 post_cat = 1
根据我当前的数据库结构,如何删除 ID 但将其更改为一个不错的 slug?例子:-
Main category - http://domain.com/category/news/
Sub category - http://domain.com/category/news/sports/
让我知道脚本如何告诉 News 等于 post_cat 列上的 1?
最佳答案
您可以使用 .htaccess file至 rewrite the URL's给你。
.htaccess 中的条目文件看起来像这样:
RewriteEngine on
RewriteCond $1 ^category
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ parseCategoryUrl.php?q=$1 [L,QSA]
我将在这里分解行以帮助理解发生了什么以及每行的含义:
category 的 URL 上- 所有以该词开头的 URL 都将由以下行处理。 !-f !-d parseCategoryUrl.php将整个请求作为参数的文件称为 q (查询)在 $_GET 数组中。规则末尾的标志 (L,QSA) 做两件事。
.htaccess文件将停止对当前 URL 执行操作。你的 parseCategoryUrl.php文件可能包含类似于以下内容的内容:
$request = explode('/',$_GET['q'] );
array_shift($request);
第一行将通过斜杠将请求拆分为一个数组 - 第二行从数组的开头删除单词类别(因为我们知道我们正在解析类别 URL)。
决赛$request数组,带有 URL 示例,例如:
http://example.domain.com/category/news/sports
将是这样的:
Array
(
[0] => news
[1] => sports
)
所以你在这里看到你现在已经成功地将 URL 拆分为一个数组;您现在要做的就是查询您的数据库并为用户提供正确的页面。
因为parseCategoryUrl.php页面实际上没有输出,你可以使用 include()函数根据提供的 URL 插入正确的页面。
SEO 旨在使您的网页及其 URL 为搜索引擎提供更多信息,以便搜索 Internet 的用户能够收到与其搜索查询相关的网页结果。查看 URL 的搜索引擎:
http://domain.com/category/1/2
将无法提取太多信息。但是,如果您的 URL 包含(如您的问题所要求的)类别信息,则搜索引擎将能够推断出特定 URL 与以下内容相关:
http://domain.com/category/news/ - 新闻http://domain.com/category/news/sports - 体育新闻http://domain.com/category/blog/ - 博客关于php - 基于类别名称的 SEO URL 在 URL 中没有类别 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9546635/
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
大家好!我想知道Ruby中未使用语法ClassName.method_name调用的方法是如何工作的。我头脑中的一些是puts、print、gets、chomp。可以在不使用点运算符的情况下调用这些方法。为什么是这样?他们来自哪里?我怎样才能看到这些方法的完整列表? 最佳答案 Kernel中的所有方法都可用于Object类的所有对象或从Object派生的任何类。您可以使用Kernel.instance_methods列出它们。 关于没有类的Ruby方法?,我们在StackOverflow
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r