كيفية إزالة عنوان URL مائل زائدة في القضبان التطبيق ؟ (في وجهة نظر كبار المسئولين الاقتصاديين)

StackOverflow https://stackoverflow.com/questions/627006

سؤال

من أجل تجنب ازدواجية المحتوى ، أود أن تجنب صفحات الموقع التي يمكن الوصول إليها من قبل العديد من عناوين المواقع (مع أو بدون مائل زائدة).

حاليا, عناوين url

catalog/product/1

و

catalog/product/1/

يؤدي إلى نفس الصفحة.هدفي هو أن الثانية توجيه URL الأولى (إعادة التوجيه 301, بالطبع).أي صفحة من موقعي ينبغي أن تكون متاحة مع خط مائل زائدة ، باستثناء الصفحة الرئيسية / من الواضح.

ما هي أفضل طريقة للقيام بذلك ؟ باستخدام .هتكس أو الطرق.rb ؟ كيف يمكنك أن تفعل ذلك ؟

ملحوظة::أنا النامية مع روبي على القضبان 1.2.3

هل كانت مفيدة؟

المحلول

كنت استخدم أباتشي mod_rewrite.جرب هذا:

RewriteEngine on
RewriteRule ^(.+)/$ $1 [R=301,L]

تحرير: وأضاف R=301.أظن هناك كبار المسئولين الاقتصاديين ميزة هذا مقابلالافتراضي 302.

نصائح أخرى

هل يمكن استخدام http://github.com/jtrupiano/rack-rewrite للحصول على رابط إعادة كتابة أن تكون مستقلة عن الاختلافات في خوادم الشبكة.

والاستخدام مثال في تطبيق القضبان:

config.gem 'rack-rewrite', '~> 1.0.0'
require 'rack/rewrite'
config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do
  r301 %r{(.+)/$}, '$1'
end

ويمكنك القيام بذلك باستخدام الأحجار الكريمة رف كتابة. وإليك الطريقة: <لأ href = "http://nanceskitchen.com/2010/05/19/seo-heroku-ruby-on-rails-and-removing-those-darn-trailing-slashes/" يختلط = "نوفولو noreferrer "> http://nanceskitchen.com/2010/05/19/seo-heroku-ruby-on-rails-and-removing-those-darn-trailing-slashes/

وأنت لا تستطيع الحصول على إعادة توجيه باستخدام routes.rb. أفترض أنك يمكن بناء وحدة تحكم التي تصدر فقط الموجهات وتشير جميع عناوين URL التي تنتهي في '/' لذلك، ولكن الذي يبدو معقدا دون داع. بدلا من ذلك، فما استقاموا لكم فاستقيموا استخدام mod_rewrite وفي ملف .htaccess:

RewriteRule ^(.+)/$ $1 [R=301,L]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top